Ich versuche, eine ListView mit CheckBox zu erstellen ... Th ListView sollte dem Benutzer ermöglichen, entweder ein Element auszuwählen oder öffnen Sie das Element, um andere Auswahl zu wählen. Mit anderen Worten, die ListView sollte in der Lage sein, zwischen dem Klick auf das Kontrollkästchen und dem Klick auf das Objekt selbst zu unterscheiden.Android ListView mit CheckBox kann den Klick unterscheiden
Ich habe versucht, es mit android.R.layout.simple_list_item_multiple_choice zu implementieren, aber dieses erlaubt mir, nur das Kontrollkästchen zu überprüfen, auch wenn ich außerhalb des Kontrollkästchens (auf dem Element) klicken.
kann jemand helfen? mein Code
Hier,
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ListViewActivity extends Activity implements OnItemClickListener {
ListView directoryList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ArrayList<String> contacts = new ArrayList<String>();
contacts.add("zaid");
contacts.add("hazem");
contacts.add("Oubai");
directoryList= (ListView) findViewById(R.id.directoryList);
final ArrayAdapter<String> arrayAdapter;
arrayAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,
contacts);
directoryList.setAdapter(arrayAdapter);
directoryList.setOnItemClickListener(this);
directoryList.setClickable(true);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
}
}
Ich hatte ein ähnliches Problem, und ich gelöst iy mit einem OnClickListener im Adapter selbst. Nicht der sauberste Weg, aber es hat funktioniert – znat
Okay, kannst du mir bitte zeigen, wie du das im Code gemacht hast? danke –
shubhayu Antwort bietet ein besseres Beispiel – znat