Android 如何获取个人关联id';单击时listview元素的个数

Android 如何获取个人关联id';单击时listview元素的个数,android,hashmap,listactivity,Android,Hashmap,Listactivity,我正在通过listactivity显示arraylist。此外,我还将id与这些arraylist元素相关联,我可以在hashmap中收集这些元素。但问题是,我希望在单击元素时获得该元素的特定id。如何做到这一点。感谢您的帮助 如果在适配器中实现了getItemId(position)方法,则可以基于单击的位置返回id。此处返回的id将是ListActivity的onListItemClick(…)方法中的long id参数 getItemId(int位置)是ArrayAdapter类的成员。L

我正在通过listactivity显示arraylist。此外,我还将id与这些arraylist元素相关联,我可以在hashmap中收集这些元素。但问题是,我希望在单击元素时获得该元素的特定id。如何做到这一点。感谢您的帮助

如果在适配器中实现了
getItemId(position)
方法,则可以基于单击的位置返回id。此处返回的id将是
ListActivity
onListItemClick(…)
方法中的
long id
参数

getItemId(int位置)
ArrayAdapter
类的成员。
ListActivity
将从
ListView
的适配器调用该函数。您所要做的就是提供实现,其余的都会很好地解决

)

ListView lv=getListView();
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共控件单击(适配器视图适配器,视图v,内部位置,长id){
长位置=lv.getItemAtPosition(位置);
//在这里做你的事
}
});

如果您使用的是自己的ArrayAdapter,那么可以实现getItem(position)方法。

我的答案如下。希望对其他人有用。 我把数据放在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"));
         }
this.setListAdapter(新的SimpleAdapter(语法选项卡)和start.this、testdata、,
.layout.tab_单个_项,新字符串[]{“模块名称”},
新的int[]{R.id.from}));
ListView lv=getListView();
单击可删除单个列表项
lv.setOnItemClickListener(新的OnItemClickListener()
public void onItemClick(AdapterView父级、视图、,
内部位置,长id)
{
Log.i(“检查”,“单击模块项”);
HashMap pos=(HashMap)lv.getItemAtPosition(位置);
Log.i(“check”、“----”+position+“id”+id+“actual is”+pos.get(“module_id”));
}

我使用了lv.getItemAtPosition()命令函数来检索被单击的整个对象。然后从中获取eid部分。干杯。

这看起来是一个可行的解决方案。Thnx。我应该在哪里创建此函数。在我创建其对象的同一类中?我将如何在函数中返回id?如果您能提供一个p我知道这个问题。我的问题是如何写它的身体。我的意思是,如何访问被点击的元素,以及在哪里我必须写这个函数。考虑我有一个hashmap HashMap m,有文本和ID。现在我如何知道哪个被点击。实现GTETEM(位置)。在getItem()中,您将从地图、数组或其他任何位置返回给定位置的项。在getItemId()中,如果使用getItem(position),您将从对象getItem()中获得相同的元素返回您可以返回ID。如果您想了解更多信息,我建议您阅读适配器文档。android SDK和开发者页面上有很多关于ListViewsthanx的示例。但是,我的问题是如何准确地实现该函数?您能提供一些示例代码吗。我有一个HashMap containi正在删除文本和id。我已在列表视图中显示了它们。现在,如何在此函数中知道单击了哪个元素?单击时列表中的每个项目是否都执行相同的操作?是的。我获取相应的id并通过intent将其传递给nect活动。仅此而已。onItemClick..您正在尝试获取所选列表项目的id..如果我我没有错,因为它只给了我正常的id,但它给了我获取整个项目的想法,即lv.getItemAtPosition(pos),然后我还将其存储在hashmap中,然后检索方向的corrs id.Thnax。
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"));
         }