0

たとえば、5 つのチェックボックス (cb1 - cb5) があります。cb1 は他よりも優れています。つまり、他の 4 つすべてがチェックされている場合にのみチェックできます。そして、cb1 をチェックすると、他の 4 つすべてが自動的にチェックされるはずです。これは私の現在の Java コードです (このコードは onCreate メソッド内にあります):

final CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox1);
final CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2);
final CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox3);
final CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
final CheckBox cb5 = (CheckBox) findViewById(R.id.checkBox5);
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( cb1.isChecked() )
        {
            cb2.isChecked();
            cb3.isChecked();
            cb4.isChecked();
            cb5.isChecked();
        }
    }
});

私は完全な初心者なので、コードが完全に間違っているか、小さなエラーが表示されないだけかもしれません。いずれにせよ、助けていただければ幸いです。また、私のやり方が複雑すぎて、もっと簡単な方法があれば教えてください。

4

1 に答える 1

0

チェックボックスリスナーのクラスを作成する

public class CheckBoxListener implements OnCheckedChangeListener {

    public CheckBoxListener() {

    }


    @Override
    public void onCheckedChanged(CompoundButton view, boolean isChecked) {
        switch(view.getId()) {
        case R.id.checkBox1: 
            //do something
        case R.id.checkBox2:

        case ...
        }

    }
}

次に、このリスナーをすべてのチェックボックスに設定します。

final CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox1);
final CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2);
final CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox3);
final CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
final CheckBox cb5 = (CheckBox) findViewById(R.id.checkBox5);
cb1.setOnCheckedChangeListener(new CheckBoxListener());
cb2.setOnCheckedChangeListener(new CheckBoxListener());
cb3.setOnCheckedChangeListener(new CheckBoxListener());
cb4.setOnCheckedChangeListener(new CheckBoxListener());
于 2013-06-11T18:14:21.703 に答える