【问题标题】:CheckedTextView : check all item in ListViewCheckedTextView : 检查 ListView 中的所有项目
【发布时间】:2013-04-08 08:35:13
【问题描述】:

这个问题快把我逼疯了。我创建了一个按钮来检查我的 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;
 }

有什么想法吗?

【问题讨论】:

    标签: android listview checkedtextview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2023-03-03
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多