android ListView mListView.getChildAt(i)为空,求怎么解决?

80后vs烦恼 发布于 2013/01/31 16:56
阅读 2K+
收藏 0

Serverless 架构就不要服务器了?>>>

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View v, int position,
     long id) {
      
    for (int i = 0; i < mListView.getCount(); i++) {
     View callLogView = mListView.getChildAt(i);   
     mRelativeLayout = (LinearLayout)callLogView.findViewById(R.id.myShow);
     if(i == position){
      if(mRelativeLayout.getVisibility() == View.GONE){
       mRelativeLayout.setVisibility(View.VISIBLE);
      }
      else{
       mRelativeLayout.setVisibility(View.GONE);
      }
     }else{
      mRelativeLayout.setVisibility(View.GONE);
     }
    }
   
            
   }
  });
如题,代码以附上,ListView的项有2个布局,我现在想做的事是在点击一项ListView后显示出下面的布局,而其它项的ListView隐藏,但在超过 mListView.getChildCount()后会出现空指针,求解!
加载中
0
小菜的奥特曼
小菜的奥特曼
mListView 是哪里来的?没看见初始化啊
0
80后vs烦恼
80后vs烦恼
这只是代码的一部分,就是在 ListView的点击事件中做处理才出了问题。
0
小菜的奥特曼
小菜的奥特曼
我也不是很清楚Android的API,但是应该是相通的,ListView应该是一个控件, getChildCount这个方法应该是用在某个item上的。
0
小菜的奥特曼
小菜的奥特曼
就是节点对象才能取得子节点的数量
0
80后vs烦恼
80后vs烦恼
怎么获取节点对象呢?有什么方法解决该问题吗?
0
小菜的奥特曼
小菜的奥特曼
ListView.getCount()(实际上是 AdapterView.getCount()) 返回的是其 Adapter.getCount() 返回的值。也就是“所包含的 Item 总个数”。

ListView.getChildCount()(ViewGroup.getChildCount) 返回的是显示层面上的“所包含的子 View 个数”。

二者有什么不同?当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount() 其中 getChildCount() 返回的是当前可见的 Item 个数。


这一段是我网上找的,你看看对你是否有帮助?关键点:ListView.getChildCount()(ViewGroup.getChildCount)

0
小菜的奥特曼
小菜的奥特曼
似乎是当前页是空的(可能全部隐藏了)没有办法取得Item个数
0
80后vs烦恼
80后vs烦恼
对,差不多就是这个意思,所以我需要获取超过 mListView.getChildCount()后的项,但是获取不了。
返回顶部
顶部