Wie man mit ListView klickt, klicke auf Android

Wie höre ich Klickereignisse in einem ListView?

Das habe ich jetzt

ListView list = (ListView)findViewById(R.id.ListView01); ... list.setAdapter(adapter); 

Wenn ich folgendes mache

 list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parentView, View childView, int position, long id) { setDetail(position); } public void onNothingSelected(AdapterView parentView) { } }); 

Das scheint beim Klick nichts zu bewirken.
Und all diese Codes leben in einer class, die Aktivität erweitert.

Solutions Collecting From Web of "Wie man mit ListView klickt, klicke auf Android"

Verwenden setOnItemClickListener Ihrer setOnItemClickListener

Angenommen, das ListView-Objekt ist lv, machen Sie Folgendes:

 lv.setClickable(true); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView< ?> arg0, View arg1, int position, long arg3) { Object o = lv.getItemAtPosition(position); /* write you handling code like... String st = "sdcard/"; File f = new File(st+o.toString()); // do whatever u want to do with 'f' File object */ } }); 

Sie müssen die aufgeblähte Ansicht “Clickable” und “in der Lage sein, Klickereignisse zu hören” in Ihrer Adapterklasse getView () -Methode einstellen.

 convertView = mInflater.inflate(R.layout.list_item_text, null); convertView.setClickable(true); convertView.setOnClickListener(myClickListener); 

und deklarieren Sie den Klick-Listener in Ihrer ListActivity wie folgt:

 public OnClickListener myClickListener = new OnClickListener() { public void onClick(View v) { //code to be written to handle the click event } }; 

Dies gilt nur, wenn Sie den Adapter anpassen, indem Sie BaseAdapter erweitern.

Weitere Informationen finden Sie unter ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java

Die zwei Antworten vor mir sind korrekt – Sie können OnItemClickListener .

Es ist gut zu OnItemSelectedListener , dass der Unterschied zwischen OnItemClickListener und OnItemSelectedListener , obwohl er subtil klingt, tatsächlich von Bedeutung ist, da die AdapterView und der Fokus mit dem Touch-Modus Ihres AdapterView .

Standardmäßig gibt es im Touch-Modus keine Auswahl und keinen Fokus. Sie können hier nach weiteren Informationen zu dem Thema suchen.

Sie müssen setOnItemClickListener , sagte jemand.
Der Code sollte wie folgt aussehen:

 listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView< ?> parent, View view, int position, long id) { // When clicked, show a toast with the TextView text or do whatever you need. Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); } }); 

Diese Lösung ist wirklich minimalistisch und verfälscht Ihren Code nicht.

Ordnen Sie in Ihrer liste_item.xml (NICHT listView!) Das Attribut android: onClick wie folgt zu :

  

und dann in Ihrer Aktivität rufen Sie diese Methode auf:

 public void onClickDoSomething(View view) { // the view is the line you have clicked on } 

Zuerst muss die class den Klick-Listener implementieren:

 implements OnItemClickListener 

Setzen Sie dann einen Listener auf die ListView

 yourList.setOnItemclickListener(this); 

Und schließlich, erstellen Sie die Clic-Methode:

 @Override public void onItemClick(AdapterView< ?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "You Clicked at " +countries[+ position], Toast.LENGTH_SHORT).show(); } 

Sie können den Code hier ansehen und herunterladen

Verwenden Sie setOnItemClickListener () api in Ihrer Aktivität. Folgendes ist die Probe.

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<> parent, View view, int position, long id) { // your code here. } });