1

その問題は私を夢中にさせています。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;
 }

何か案は ?

4

1 に答える 1

0

まず第一に、あなたの最初の償還は、リストビューをどのように扱うべきかということではありません。ListAdapter を介して常にデータを変更します。

2 番目の adempt では、name.setChecked(true)代わりに を使用しname.setSelected(true)ます。

于 2013-04-08T08:41:04.390 に答える