2

チェックボックスの選択をすべて選択解除しようとしていますが、うまくいきません

このコードで私のJava Androidプログラムのボタンを押すことによって

public void onListItemClick(ListView parent, View v, int position, long id)
 {
        parent.setItemChecked(position, parent.isItemChecked(position));
 }


 @Override
 protected  Dialog onCreateDialog(int id, Bundle args){
    switch(id){
    case 1:
        return new AlertDialog.Builder(this)
        .setIcon(R.drawable.ic_launcher)
        .setTitle("This is a dialog with some simple text...")
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton)
            {
                Toast.makeText(getBaseContext(),"OK clicked!", Toast.LENGTH_SHORT).show();
            }})

        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton)
            {
                Toast.makeText(getBaseContext(),"Cancel clicked!", Toast.LENGTH_SHORT).show();
            }
            })

        .setMultiChoiceItems(items, itemsChecked, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                Toast.makeText(getBaseContext(),items[which] + (isChecked ? " checked!":" unchecked!"),Toast.LENGTH_SHORT).show();
            }
            })
        .create();
        }
        return(null);
    }

すべてを選択してすべての選択を解除する方法は?

4

1 に答える 1

2

私の最善の推測は、それらすべての参照をリストに保存し、それらすべてを選択または選択解除してすべてを調べることです。このようなもの。

すべてのチェックボックスを保持するための参照を作成します

List<CheckBox> myCheckBoxes = new ArrayList<CheckBox>();
myCheckBoxes.add(cb1);
myCheckBoxes.add(cb2);
myCheckBoxes.add(cb3);
....

チェック ボックスに設定する値を取得するメソッドを作成し、いつでも呼び出すことができます。:

private checkAll(boolean value) {
    for(CheckBox cb : myCheckBoxes) {
        cb.setChecked(value);
    }
}

2 つのボタンを作成します。

Button unselectAllButton = (Button) findViewById(R.id.unCheckButton);
Button selectAllButton = (Button) findViewById(R.id.checkButton);

unselectAllButton.setOnClickListener(setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
       checkAll(false); 
   }
});

selectAllButton.setOnClickListener(setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
       checkAll(true); 
   }
});
于 2012-06-23T08:02:59.283 に答える