如何从ListView中获取列表项的数量?

我使用下面的代码来遍历我的列表,它工作正常,如果列表项是可见的。

如果List是可滚动的,那么不可见的项目不能使用这个代码访问。 如何遍历所有visble +不可见项目的列表项目。

for(int i=0;i<list.getCount;i++) { View v = list.getChildAt(i); TextView tv= (TextView) v.findViewById(R.id.item); Log.d("","ListItem :"+tv.getText()); } 

Solutions Collecting From Web of "如何从ListView中获取列表项的数量?"

最近我做了这件事。 假设我想隐藏一个listItem上的button。 然后在列表适配器的getView中,在全局vector中添加该button。 如下所示。

  Button del_btn = viewCache.getFrame(); view_vec.add(del_btn); 

这里viewCache是​​ViewCache类的一个对象,就像下面这样 –

  class ViewCache { private View baseView; private Button button; public ViewCache(View baseView) { this.baseView = baseView; } public Button getButton() { if(button == null) { button = (Button) baseView.findViewById(R.id.DeleteChatFrndBtn); } return button; } } //it is necessary sometimes because otherwise in some cases the list scroll is slow. 

现在你喜欢看到listItem的buttononClicking其他button。 那么代码就像下面 –

  public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.EditChatFrndBtn: length = view_vec.size(); for(int i = 0; i < length; i++) { Button btn = (Button) view_vec.elementAt(i); btn.setVisibility(View.VISIBLE); } doneBtn.setVisibility(View.VISIBLE); editBtn.setVisibility(View.INVISIBLE); break; } } 

而不是R.id.EditChatFrndBtn把你的buttonID点击你将不可见/可见listItem的button。

这里是如何让你的ListView中的活动和遍历它。

 ListView myList = getListView(); int count = myList.getCount(); for (int i = 0; i < count; i++) { ViewGroup row = (ViewGroup) myList.getChildAt(i); TextView tvTest = (TextView) row.findviewbyid(R.id.tvTestID); // Get your controls from this ViewGroup and perform your task on them =) } 

我希望这个能帮上忙