[英]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.