Frage

Wie ich höre Ereignis auf einem Listview klicken?

Das ist, was ich habe jetzt

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

Wenn ich die folgenden

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 nicht alles auf Klick zu tun.
Und alle, der Code Live innerhalb einer Klasse, die mit Aktivität erstreckt.

War es hilfreich?

Lösung

Auf Ihrer Listenansicht Verwendung setOnItemClickListener

Andere Tipps

Angenommen Listview-Objekt ist lv Sie wie folgt vor -

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 aufgeblasene Ansicht „Clickable“ setzen und „in der Lage zu hören Ereignisse klicken“ in der Adapterklasse getView () -Methode.

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

und erklärt den Klick Zuhörer in Ihrem 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 dann, wenn Sie die Adapter sind die Anpassung von BaseAdapter erstrecken.

Siehe die ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java für weitere Details

Die beiden Antworten vor mir sind richtig - Sie OnItemClickListener verwenden können,

.

Es ist gut zu beachten, dass der Unterschied zwischen OnItemClickListener und OnItemSelectedListener, während subtilen klang in der Tat von Bedeutung ist, als Artikelauswahl und Fokus werden mit dem Touch-Modus Ihrer AdapterView Zusammenhang stehen.

In der Standardeinstellung im Touchbetrieb gibt es keine Auswahl und Fokus. Sie können einen Blick hier für weitere Informationen zu diesem Thema.

Diese Lösung wirklich minimalistisch ist und nicht vermasseln Ihren Code.

list_item.xml ordnen Sie das Attribut Android (NICHT listview!): OnClick wie folgt aus:

<RelativeLayout android:onClick="onClickDoSomething">

und dann in Ihrer Tätigkeit diese Methode aufrufen:

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

Sie haben gesagt setOnItemClickListener jemand verwenden.
Der Code sollte so 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();
    }
});

Als erstes werden die Klasse müssen Geräte der Klick listenener:

implements OnItemClickListener

Dann wird ein Listener auf die Listview gesetzt

yourList.setOnItemclickListener(this);

Und schließlich schafft 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();
}

können Sie einen Blick und Downloadcode nehmen hier

Mit setOnItemClickListener () api in Ihrer Tätigkeit. Im Anschluss wird die Probe.

listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){

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

});

In Kotlin, einen Zuhörer zu Ihrem Listview so einfach wie Java

hinzufügen
your_listview.setOnItemClickListener { parent, view, position, id ->   

    Toast.makeText(this, position, Toast.LENGTH_SHORT).show()

 }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top