我正在尝试访问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
,如何实现?
答案 0 :(得分:0)
你根本不应该这样做! ListView
不呈现它不需要呈现的视图,它确实重用已经创建的视图对象。这是优化。
相反,提供Adapter
的实现或扩展一个,覆盖getView
方法并操纵由super.getView
创建或由您的代码创建的视图。
如果ListView
已经显示了这些项目,您可以通过调用ListView.invalidateViews
重新绘制项目。它将调用适配器绘制视图。
如果您使用BaseAdapter
并且基础已更改,请在适配器上调用notifyDataSetChanged
。