1

我有一个附有适配器的 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");
            }
        });

但是 OnItemClickListener 从不响应。怎么了?

4

4 回答 4

1
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

     }
}   
于 2012-07-07T09:53:15.407 回答
0

您不需要设置OnItemClickListener. 你必须覆盖onListItemClick

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

第三个参数是适配器中position的元素。position

于 2012-07-07T09:29:08.873 回答
-1

如果你有你在适配器中使用的每个列表项的行布局,而不是每个 ImageView 或 Button 或 Checkbox 或 TextView 等的行布局......你必须在 xml 中添加这一行

 android:clikable="false"
 android:focusable="false"
于 2012-07-07T09:47:50.300 回答
-1

你错过了这个:

    this.myList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

默认情况下,列表没有任何选择模式,即默认设置为 CHOICE_MODE_NONE。因此,要使其可点击,我们必须根据您的需要将其设置为 CHOICE_MODE_SINGLE 或 CHOICE_MODE_MULTIPLE 。

于 2012-07-07T09:49:28.147 回答