0

我正在尝试访问 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,如何实现?

4

1 回答 1

0

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

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

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

如果您正在使用BaseAdapter并且底层已更改,请调用notifyDataSetChanged适配器。

于 2013-07-06T13:41:47.183 回答