J'ai une classe qui agrandit une liste. Je dois avoir onitemclicklistener sur cette liste. Le code suivant ne fonctionne pas. Je veux dire que l'écoute sur clic ne fonctionne pas. Comment résoudre ceci?comment définir onitemclicklistener sur un listview
listview.xml
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="47dip"
android:layout_marginTop="47dip" >
</ListView>
elements.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="46dp"
android:gravity="center" >
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="ToggleButton"
android:textOff="Inactive"
android:textOn="Active" />
<TextView
android:id="@+id/label_note"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_centerVertical="true"
android:layout_marginRight="38dp"
android:layout_marginLeft="2dip"
android:layout_toRightOf="@+id/check_note"
android:text="@+id/label"
android:textSize="25px" />
<CheckBox
android:id="@+id/check_note"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:visibility="gone"
android:button="@drawable/customdrawablecheckbox" />
</RelativeLayout>
List.java
public class List extends ListActivity{
....
public void onCreate(Bundle icicle) {
this.setContentView(R.layout.listview);
super.onCreate(icicle);
}
ArrayAdapter<ListModel> adapter = new InteractiveArrayAdapter(
this, getModel(), false);
setListAdapter(adapter);
final ListView list1 = getListView();
list1.setItemsCanFocus(true);
list1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) {
// TODO Auto-generated method stub
// HashMap<String, String> o = (HashMap<String, String>) list1.getItemAtPosition(pos);
Toast.makeText(ContactsNoteList.this, "ID '" +list.get(pos).getName()+" "+list.get(pos).getId().toString() + "' was clicked.", Toast.LENGTH_LONG).show();
}
});
..}
private List<ListModel> getModel() {
for (int i=0;i<3;i++)
list.add(get("Elem"+i.toString(),i);
}
}
return list;
}
private ListModel get(String s1,int Id) {
return new ListModel(s1,Id);
}
InteractiveArrayAdapter.java
InteractiveArrayAdapter extends
ArrayAdapter<ListModel> {
private final List<ListModel> list;
private final Activity context;
private boolean visibility;
public InteractiveArrayAdapter(Activity context, List<ListModel> list,boolean visibility) {
super(context, R.layout.elements, list);
this.context = context;
this.list = list;
this.visibility=visibility;
}
static class ViewHolder {
protected TextView text;
protected CheckBox checkbox;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.elements, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.text = (TextView) view.findViewById(R.id.label_note);
viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check_note);
viewHolder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
ListModel element = (ListModel) viewHolder.checkbox.getTag();
element.setSelected(buttonView.isChecked());
}
});
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.text.setText(list.get(position).getName());
holder.checkbox.setChecked(list.get(position).isSelected());
if (visibility==true)
holder.checkbox.setVisibility(View.VISIBLE);
else
holder.checkbox.setVisibility(View.INVISIBLE);
return view;
}
}
Besoin d'aide. THX. Appréciez
pourriez-vous s'il vous plaît substituer mon exemple? – user1222905
thx. Ça marche. Dans mon cas, je veux retourner le texte de la liste et l'id. comment écrire ça? Besoin d'aide pour. thx – user1222905
hey! bon ça marche pour toi. Si cela fonctionne, vous devez "accepter" la réponse – Pallavi