如何从android中的setOnItemClickListener中的listview获取对象?

时间:2011-08-16 04:15:37

标签: android android-adapterview

我在arrayadapter中添加了arraylist,其中包含每个由两个元素/项组成的对象,我已成功为setListAdapter设置了该适配器,现在我想在listview的setOnItemClickListener中获取这些项。

这是我的代码

   TweetListAdaptor adaptor = new TweetListAdaptor(this,R.layout.list_item, tweets);       
   setListAdapter(adaptor); 
   ListView lv = getListView();
   lv.setTextFilterEnabled(true);
   lv.setOnItemClickListener(new OnItemClickListener() 
   {
   public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
   {
     //here i want to get the items             
   }
 });

7 个答案:

答案 0 :(得分:52)

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    int color = parent.getAdapter().getItem(position);
}

答案 1 :(得分:6)

public void onItemClick(AdapterView<?> parent, View view,int position, long id){
    something = tweets[position];
}

答案 2 :(得分:2)

你想获得这些物品并用它们做什么?

例如,您可以像这样制作Toast消息。

public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
    {
        Toast.makeText(getApplicationContext(), tweets[position], Toast.LENGTH_SHORT).show();

    }

希望这有帮助。

答案 3 :(得分:2)

如果您已准备好所有数据的listview,并且只想使用objet的值:

ViewGroup row = (ViewGroup) listprod.getChildAt(0);
TextView tvTest = (TextView) row.findViewById(R.id.textnomprod);

我的listview是“ listprod ”,我希望在 0 的位置获取值,其中 textnomprod 是我的对象并且即时保存在我的变量 tvTest

答案 4 :(得分:0)

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
        Windows clickedObject = adapter.get(position);
    }
}

在上面的例子中考虑,

    列表视图中使用的
  • 对象名为 Windows
  • 在列表视图中点击的项目对象名为 clickedObject
  • 使用的arraylist称为适配器

此外,请确保在ArrayList前加上 final

答案 5 :(得分:0)

我通过使用设置它的适配器解决了这个问题。

TweetListAdaptor adaptor = new TweetListAdaptor(this,R.layout.list_item, tweets);       
setListAdapter(adaptor); 
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() 
{
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
   {    
        //here i want to get the items  
        adaptor.getItem(position);   // this is your object
    }
});

请记住,必须初始化适配器并将其设置为ListView。

通过这种方式,您可以访问所需对象的属性。

答案 6 :(得分:-2)

getListView().getItemAtPosition(position)将在Object

中返回TweetListAdaptor