1

我正在尝试计算 listView 项目。我使用这段代码:

int count=0;
ListView listView = (ListView) findViewById(R.id.listView1);
 for(int i = 0; i  <= listView.getLastVisiblePosition(); i++)
         {
             if(listView.getChildAt(i)!= null)
             {
                 count++;  
             }
         }

Toast.makeText(getApplicationContext(), String.valueOf(count), Toast.LENGTH_SHORT).show();

为什么 COUNT 变量值总是 0,当 listView 显示一些记录时?

4

3 回答 3

3

如果您正在寻找所有 ListView 项目的计数,您可以使用此调用(确保设置了适配器):

listView.getCount();

如果你想要的是可见项目的数量,试试这个(仅适用于可见的 ListView):

listView.getLastVisiblePosition()-listView.getFirstVisiblePosition();
于 2013-03-03T13:33:11.910 回答
1

让我解释一下原因..你刚刚得到这样的列表视图

ListView listView = (ListView) findViewById(R.id.listView1);

所以listview没有元素,然后你试图通过使用 listView.getLastVisiblePosition()它来获取最后一个可见位置总是返回零,因为你的listview还没有与任何适配器绑定,即你的listview在你获得最后一个可见位置时是空的到place this code after binding Adapter to the listview

for(int i = 0; i  <= listView.getLastVisiblePosition(); i++)
         {
             if(listView.getChildAt(i)!= null)
             {
                 count++;  
             }
         }
于 2013-03-03T12:21:51.437 回答
1

使用这个。它可以帮助我

String CountListRowNo= String.valueOf(+ListviewObj.getAdapter().getCount());
于 2014-12-16T09:44:54.833 回答