アプリにカスタムlistViewがあり、作成した[すべて選択]ボタンを実装したいと思います。
私のListViewはのように見えます。
[(画像)(テキスト)(チェックボックス)]
私はいくつかの同様の質問を見てきました、最も一般的な答えはnotifyDataSetChanged ()
メソッドのユーザーとでした、iv'eは運がなくて研究と実装を試みました、私はあなたがそれを回避する方法を考えたり、私がどのように例を挙げたりできるか疑問に思いましたメソッドを実装できます
アプリにカスタムlistViewがあり、作成した[すべて選択]ボタンを実装したいと思います。
私のListViewはのように見えます。
[(画像)(テキスト)(チェックボックス)]
私はいくつかの同様の質問を見てきました、最も一般的な答えはnotifyDataSetChanged ()
メソッドのユーザーとでした、iv'eは運がなくて研究と実装を試みました、私はあなたがそれを回避する方法を考えたり、私がどのように例を挙げたりできるか疑問に思いましたメソッドを実装できます
上記の答えがうまくいかなかったので、別の答えの一部を使って答えを見つけました。
これをグローバルに追加しました。
ListView list;
//\\ 0 = None set \\// 1 = Select all \\// 2 = Un-Select all//\\
int selState = 0;
次に、onClickメソッドで使用しました
selState = 2;
list.invalidateViews();
selStateは、実行したい関数と同じです
アダプタでは、これはコードの最後の部分です
switch(selState)
{
...
case 2:
CheckBox.setChecked(false);
break;
}
これを行う簡単な方法は、ListViewを繰り返し処理して各アイテムのビューを取得し、それをチェックすることです。ListViewをsampleListViewとして取得し、checkBoxIdのチェックボックスのIDを取得できることを前提として、以下にいくつかのサンプルコードを提供しました。
// Loop through all the items in the list view
for(int viewIndex = 0; viewIndex < sampleListView.getCount(); viewIndex++)
{
// Get the current list item
View listItem = sampleListView.getChildAt(sampleListView.getFirstVisiblePosition() + viewIndex);
// Get the checkbox within the list item
CheckBox currentBox = (CheckBox)listItem.findViewById(R.id.checkBoxId);
// Check the checkbox
currentBox.setChecked(true);
}
このコードをボタンのOnClickListener()内に配置すると、うまくいくはずです。