0

1 回のボタン クリックでチェック ボックスのすべてのチェック マークをクリアするように実装しようとしています。コードは問題ないように見えますが、機能していません。チェックボックスのレイアウトが異なります...私の現在のアクティビティでは、チェックボックスを膨らませてsetChecked(false)を実行しています(これは機能していません)..別の方法はありますか?

Button clearbtn1 = (Button) findViewById(R.id.clearbtn);
        clearbtn1.setOnClickListener(new OnClickListener() {
            @Override

            public void onClick(View v) {



                LayoutInflater inflater_example = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
                View v1= inflater_example.inflate(R.layout.profile, null); 
                CheckBox checkBox = (CheckBox) v1.findViewById(R.id.checkBox1);
                checkBox.setChecked(false); 
        }
        });

どんな助けでも大歓迎です。

4

2 に答える 2

1

定数のすべてのチェックボックスの状態をクリアし、アダプターに通知またはリセットして、変更を反映させます。

Button clearbtn1 = (Button) findViewById(R.id.clearbtn);
    clearbtn1.setOnClickListener(new OnClickListener() {
        @Override

        public void onClick(View v) {
          for(int i=0;i < Constants.checkBoxState.length; i++)      
             Constants.checkBoxState[i] = false;

          listAdapter.notifyDataSetChanged();

    }
    });
于 2013-01-04T05:50:50.220 に答える
1

アダプターには、有効にしたいこれらのビューがあります。標準の OOP 原則では、アダプターメソッドを作成してそれを実行するように指示されています。アダプターのテクニックと、チェックボックスの状態を維持するために巧みに戦う方法から判断するconvertViewと、その方法は自明だと思います。boolean状態を決定するフラグを設定し、アダプタを更新するだけです。ボタンのOnClickListener

private void clearChecks() {
    for (int i = 0; i < Constants.checkBoxState.length; i++) {
        Constants.checkBoxState[i] = false;
    }
    notifyDataSetChanged();
}
于 2013-01-04T05:52:51.197 に答える