如何访问ListView中的ListItem

时间:2013-07-06 13:15:22

标签: android

我正在尝试访问ListView中的ListItem之一,如下所示。 很多人讨论过类似的问题。但我尝试过,而不是他们的工作。 我的代码列在下面。

 pos = 0;//position of ListItem
 for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext())
 {
     if(tel.equals(cursor.getString(2)))
         break;
     pos++;
 }  
 LayoutInflater mInflater = LayoutInflater.from(context);
 View myView = mInflater.inflate(R.layout.my_list_fragment, null);
 lvObjects = (ListView)myView.findViewById(android.R.id.list);              
 View v = lvObjects.getChildAt(pos);

我的问题是 (1)View v始终为Null。 (2)getChildAt()仅返回可见View。如果我想访问隐藏的View,如何实现?

1 个答案:

答案 0 :(得分:0)

你根本不应该这样做! ListView不呈现它不需要呈现的视图,它确实重用已经创建的视图对象。这是优化。

相反,提供Adapter的实现或扩展一个,覆盖getView方法并操纵由super.getView创建或由您的代码创建的视图。

如果ListView已经显示了这些项目,您可以通过调用ListView.invalidateViews重新绘制项目。它将调用适配器绘制视图。

如果您使用BaseAdapter并且基础已更改,请在适配器上调用notifyDataSetChanged