2015-11-04 83 views
0

我正在处理一个listFragment,它使用自定义的CursorAdapter来扩充listView。列表布局中包含的元素之一是默认不可见的复选框。当我按下按钮(在我的情况下 - > onOptionsItemSelected),我想使复选框在所有项目中可见。但是,通过使用我的代码,我的listItems中只有一个复选框可见,其余部分仍然不可见。Android Custom CursorAdapter setVisibility

这里是我的代码

的方法我的按钮调用了:

public static void checkboxVisibility(){ 
    ViewHolder viewHolder = (ViewHolder)v.getTag(); 
    viewHolder.checkBox.setVisibility(View.VISIBLE); 
} 

我甚至称notifyDataSetChanged(),但它没有任何影响。 我真的很感谢你的帮助。

回答

2

试试这个,把这个方法放在你的ItemAdapter和ListView所在的片段上。在onOptionsItemSelected上调用它。

public void showCheckBoxes(){ 
    int childSize = listView.getChildCount(); 
    for(int i = 0; i < childSize; i++) { 
      View listItem = listView.getChildAt(i); 
     if (listItem != null) {     
      CheckBox checkBox = (CheckBox) listItem.findViewById(R.id.checkBox); 
      checkBox.setVisibility(View.VISIBLE); 
     } 
    } 
} 

我没有Android的工作室在这里,但尝试,当我回家我也来试试。

+0

Sry,我忘了提及我使用ListFragment而不是listView。我如何在ListFragment上运行getChildCount()? – Poweranimal

+1

您可以检索[片段列表](http://developer.android.com/reference/android/app/ListFragment.html#getListView()) – pleonasmik

+0

太棒了!有效!非常感谢!我在那里呆了几个小时:D – Poweranimal

相关问题