2011-09-09 11 views
1

他のアイテムをクリックすると他のアイテムをすべて無効にするにはどうすればいいですか?以下は私のコードAndroid - 他のアイテムをクリックしたときに他のアイテムをすべて無効にする

final CharSequence[] items = {"Red", "Green", "Blue"};  
AlertDialog.Builder builder = new AlertDialog.Builder(context); 
builder.setTitle("Select Sources"); 
builder.setMultiChoiceItems(items, null, new OnMultiChoiceClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
     if(items[which] == "Red"){ 
      //Disabled Green and Blue items 
     } 
    } 
}); 
AlertDialog alert = builder.create(); 
alert.show(); 

答えて

1

ニーズに応じて、以下のコードを変更します:

public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
    if(items[which] == "Red"){ 
     ((AlertDialog) dialog).getListView().setItemChecked(which,false);//this line will help you disabling the other options.  
    } 
} 
+0

彼はオフに尋ねませんでしたが、無効にする方法。それ以外の場合は、setSingleChoiceItemsを代わりに使用すると意味があります。 –

+0

@mice:「ALL」という項目が1つあります。そのアイテムが選択されていれば、他のすべてのアイテムは無効になります。 – StoneHeart

1

は、あなたがそれを行うことができ、あなたはダイアログのチェック項目一覧ビルトイン使用しないこと、自分のものを提供してください。どこで何をすることができますか?

CursorAdapter(このクラスを拡張)を使用して、ダイアログ内のレイアウト内のListViewでsetAdapterによって設定できます(DialogBu​​ilder.setViewを使用してリストビューを設定します)。

CursorAdapterは、主にnewViewを実装しています(アイテム名とチェックボックスをLinearLayoutでカプセル化した複合ビューを作成する場合は、リソースからこれを膨らませることがあります)。 bindViewを実装して名前、チェックボックスの状態、無効状態要するに

:AlertDialogだけの単純なマルチオプションのリストを提供していますあなたはカスタマイズが必要な場合、あなたは自分のリストアダプタを使用して長い道を行く必要があります

関連する問題