【问题标题】:How to get number of items in ListAdapter?如何获取 ListAdapter 中的项目数?
【发布时间】:2014-04-10 09:46:14
【问题描述】:

有谁知道检索存储在 ListAdapter 中的项目数量的正确方法?这是一个暗淡的(它有效):

int count = ((ArrayAdapter<Object>)getAdapter()).getCount();

this 是一个复杂视图的实例,例如 GridView 或 ListView,由来自 ListAdapter 的数据构成,getAdapter() 返回 ListAdapter。

【问题讨论】:

  • 我认为这是最好的方法
  • 但它看起来像肮脏的 C-like hack
  • 您为什么要寻找替代方法?这种方法不符合您的要求吗?
  • @Eu.Dr.这种方法是正确的,但我渴望找到更优雅的方法。
  • @ghoshak 为什么这“不那么优雅”?在内存方面是否需要更多资源?它有一些限制吗?

标签: android listadapter


【解决方案1】:

谢谢各位。解决方案更简单(我在阅读上面的答案后意识到了这一点):

int count = getAdapter().getCount();

原因是ListAdapter接口getAdapter()调用的返回是继承自Adapter接口已经声明了getCount()方法。

【讨论】:

    【解决方案2】:
    listview.setOnItemClickListener(new OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> lv, View item, int position,   long id) 
        {
            ListView lView = (ListView) lv;
            Adapter adapter = (MyAdapter) lView.getAdapter();
            int i = adapter.getCount();
            System.out.println(i + ".....size..........");
        }
    });
    

    【讨论】:

    • 这不是解决方案。我必须在使用它的视图类中获取适配器中的项目数。但你是对的,它可以简化getCount() 的访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 2011-06-08
    • 1970-01-01
    相关资源
    最近更新 更多