1

这个问题快把我逼疯了。我已经创建了一个按钮来检查我的 ListView 中使用 CheckedTextView 组成的所有项目:

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;
 }

有任何想法吗 ?

4

1 回答 1

0

首先,您的第一个优点不是,您应该如何对待列表视图。始终通过 ListAdapter 更改其数据。

在您的第二次尝试中,使用name.setChecked(true)而不是name.setSelected(true).

于 2013-04-08T08:41:04.390 回答