这个问题让我发疯了。我创建了一个按钮,用于检查我使用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;
}
有什么想法吗?
答案 0 :(得分:0)
首先,你的第一个擅长不是,你应该如何对待列表视图。始终通过ListAdapter更改它的数据。
在第二次使用时,请使用name.setChecked(true)
代替name.setSelected(true)
。