简体   繁体   English

Android OnItemClickListener

[英]Android OnItemClickListener

I have a ListActivity with an Adapter attached. 我有一个附加适配器的ListActivity。 Now I want to register a click on a list item in the adapter. 现在,我要注册一个单击适配器中列表项的按钮。 This is my solution in onCreate of the ListActivity: 这是我在ListActivity的onCreate中的解决方案:

        this.myList = getListView();
        this.myList.setAdapter(this.adapter);
        this.myList.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                Log.d("Click", "ListView");
            }
        });

But the OnItemClickListener never responds. 但是OnItemClickListener从不响应。 What is wrong? 怎么了?

ListView list = (ListView) findViewById(R.id.listView1);

 MobileArrayAdapter adapter = new MobileArrayAdapter(this,android.R.layout.simple_list_item_1);
 list.setAdapter(adapter);       

 list.setOnItemClickListener(new OnItemClickListener() {
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
 //your data

     }
}   

You do not need to set OnItemClickListener . 您不需要设置OnItemClickListener You have to override onListItemClick : 您必须重写onListItemClick

@Override 
    public void onListItemClick(ListView l, View v, int position, long id) {
        // Do something when a list item is clicked
    }

The third parameter, position , is the element at position in your adapter. 第三个参数position是适配器中位于position的元素。

If u have row layout for each list item which u have used in adpter than in that row layout for each ImageView or Button or Checkbox or TextView etc ... u have to add this line in xml 如果您具有在adpter中使用的每个列表项的行布局,而不是每个ImageView或Button或Checkbox或TextView等的行布局,则必须在xml中添加此行

 android:clikable="false"
 android:focusable="false"

You are missing this: 您缺少此:

    this.myList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

By default, list doesnot have any choice mode ie its set as CHOICE_MODE_NONE by default. 默认情况下,列表没有任何选择模式,即默认情况下将其设置为CHOICE_MODE_NONE。 So to make it clickable, we have to set it as CHOICE_MODE_SINGLE or CHOICE_MODE_MULTIPLE as per you want . 因此,要使其可点击,我们必须根据需要将其设置为CHOICE_MODE_SINGLE或CHOICE_MODE_MULTIPLE。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM