我正在通过列表活动显示一个数组列表。此外,我将 id 与这些 arraylist 元素相关联,我可以将它们放在一个 hashmap 中。但问题是我想在单击元素时获取元素的特定 id。如何实现。任何帮助表示赞赏。
问问题
817 次
3 回答
0
getItemId(position)
如果您在适配器中实现了该方法,则可以根据单击的位置返回 id 。您在此处返回的 id 将是您的方法中的long id
参数。onListItemClick(...)
ListActivity
getItemId(int position)
是ArrayAdapter
班级的一员。ListActivity
将从您的适配器调用该函数ListView
。您所要做的就是提供实现,其余的就可以了。
http://developer.android.com/reference/android/widget/ArrayAdapter.html#getItemId(int )
于 2012-08-23T08:22:08.730 回答
0
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
long pos=lv.getItemAtPosition(position);
//do your stuff here
}
});
如果您使用自己的 ArrayAdapter,则可以实现 getItem(position) 方法。
于 2012-08-23T08:50:05.187 回答
0
对我有用的答案如下。希望它可能对其他人有用。我在 Arraylist> testdata 中有数据。我是这样通过的:-
this.setListAdapter(new SimpleAdapter(Grammar_tab_start.this, testdata ,
.layout.tab_single_item, new String[] { "module_name"},
new int[] { R.id.from}));
ListView lv = getListView();
to single list item on click
lv.setOnItemClickListener(new OnItemClickListener()
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
Log.i("check","Module item clicked");
HashMap<String,String> pos=(HashMap<String, String>) lv.getItemAtPosition(position) ;
Log.i("check","----" + position + "id" + id +"actual is "+ pos.get("module_id"));
}
我使用 lv.getItemAtPosition() 函数来检索被点击的整个对象。然后从中拿走了开斋节的一部分。干杯。
于 2012-08-24T08:25:37.497 回答