onListItemClick + android

时间:2014-05-28 05:53:34

标签: android listview

你能解释一下这个方法的参数吗?我不明白他们。 http://developer.android.com/reference/android/app/ListActivity.html#setListAdapter(android.widget.ListAdapter)

 onListItemClick(ListView l, View v, int position, long id)

ListView l:定义发生点击事件的ListView?

View v:定义在ListView中单击的视图?那么对于ListView,那将是包含ListView的xml,如果它是一个自定义ListView,那么xml包含该行?

int position:列表中视图的位置。可以使用以下功能检索吗? getListView().getPositionForView((LinearLayout)v.getParent())

long id:已点击项目的行ID。这与position不一样吗?或者我们提供R.id.Textview?

3 个答案:

答案 0 :(得分:1)

简单。

ListView l - >是发生单击的listview对象的名称。 (简单)

喜欢

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

查看v --->列表视图中可以有多个视图。因此,这表示已单击哪个视图并相应地执行操作。

位置 - >列表中视图的位置。 (查看位置)

id ---> ITEM的行ID。 (项目ID)

答案 1 :(得分:1)

列表视图由小项/行组成。使用自定义listView时。每行/项可以具有不同的功能和布局。所以对于每一行/项目,我们必须使用不同的功能..

例如,在第四行的列表视图中有一个按钮,而在所有其他项目上只有文本。因此,为了将您的活动放在那里,您必须获得特定的行/项目内容。以下代码可让您访问单个项目..

 onListItemClick(ListView l, View v, int position, long id) 


first parameter is parent where the click happened

second parameter is single View(child/row) of a ListView(Parent)

third parameter is the position of child view.

fourth parameter is the id of the child view.

答案 2 :(得分:0)

首先由您定义的ListView对象:

ListView foo = (ListView) findViewbyId(R.id.foo);

2秒自行行项目(查看v)一个是您点击的对象很简单(您可以获取已点击的视图),您可以更改颜色或内容或您想要的任何内容< / p>

ListView中(View v)对象的3位索引从0开始

项目的4行ID(我从未使用过)