1

我正在通过列表活动显示一个数组列表。此外,我将 id 与这些 arraylist 元素相关联,我可以将它们放在一个 hashmap 中。但问题是我想在单击元素时获取元素的特定 id。如何实现。任何帮助表示赞赏。

4

3 回答 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 回答