Android:如何将行id分配给ListView

时间:2013-11-20 10:03:35

标签: android listview row

我想在点击listview项时显示不同的消息,任何人都可以帮助我理解如何将特定列(例如,room_id)显式绑定到列表视图,以便onItemClick中的id占用room_id。 / p>

listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,long id) {

        }
    });

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:2)

在列表视图中,您必须传递对象列表作为其参数。

listview = (ListView) findViewById(android.R.id.list);
adapter = new YourCustomeAdapter(this, rowItems);
listview.setAdapter(adapter);

这里rowItems是你的对象列表。

在setOnItemClickListener方法中,您将使用position获取rowItem列表的每个对象。

答案 1 :(得分:1)

我认为这与你的适配器有关(你传递给listView.setAdapter()) 您必须正确实现这些方法(适配器)。

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

您将能够直接获取当前ID或您的对象(以及其属性的id)

listView.setOnItemClickListener(new OnItemClickListener() { 
   @Override public void onItemClick(AdapterView parent, View view, int position,long id)     {
       ListView lv = (ListView) parent;
       YOUR_OBJECT yourItem = (YOUR_OBJECT) parent.getSelectedItem();
    }
});

答案 2 :(得分:0)

listView.setOnItemClickListener(new OnItemClickListener() { 
 @Override 
   public void   onItemClick(AdapterView parent, View view, int position,long id) {

  }
});

在我的情况下,int position和long id都给出了相同的值,即。如果单击列表视图中的第一项,则OnItemClick()中position和id的值为0,最终为您提供列room_id的索引。因此,您可以将特定列(e.x.,room_id)显式绑定到列表视图,以便onItemClick()中的id获取room_id。