CheckedTextView:检查ListView中的所有项目

时间:2013-04-08 08:35:14

标签: android listview checkedtextview

这个问题让我发疯了。我创建了一个按钮,用于检查我使用CheckedTextView组成的ListView的所有项目:

selectAll = (CheckBox) findViewById(R.id.selectAll);
selectAll.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    toggleAll(selectAll.isChecked());
        }
    });

在toggleAll函数中,我尝试重新加载所有选中项目的布局:

int size = maListViewPerso.getCount();
for ( int i=0; i< taille; i++ ) {
    View v = maListViewPerso.getAdapter().getView(i, null, null);
    CheckedTextView tv = (CheckedTextView) v.findViewById(R.id.eventName);
    tv.setChecked(check);
}

但是在视图中没有设置要检查的项目。最差:所有选中的项目切换为取消选中。

我还尝试了另一种方法,初始化ListView的自适应,默认选中所有项目......没有结果。有关信息,我的ListView适配器以这种方式工作:

public class ListViewColor extends ArrayAdapter<String>{
    public ListViewColor(Context context, int textViewResourceId, List<String> objects, String type) {

        [...]

 }
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
      String[] result = item.split("/");                
      CheckedTextView name = (CheckedTextView) view.findViewById(R.id.eventName);
      name.setText("txt");
      name.setSelected(true);
      return view;
 }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

首先,你的第一个擅长不是,你应该如何对待列表视图。始终通过ListAdapter更改它的数据。

在第二次使用时,请使用name.setChecked(true)代替name.setSelected(true)