1

を使用して を作成し、AlertDialogから派生したカスタム クラスに設定しました。AlertDialog.BuildersetSingleChoiceItemsListAdapterCursorAdapter

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Title")
       .setSingleChoiceItems(mAdapter, -1, new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which)
         {
           // Do nothing.
         }})
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which)
         {
           Log.d(TAG, "Ok clicked.");
         }})
       .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which)
         {
           Log.d(TAG, "Cancel clicked.");
         }});

を使用しているにもかかわらず、setSingleChoiceItems()表示されるダイアログにはチェック ボックス付きのリストが含まれており、複数の項目をチェックできます。代わりにラジオボタン付きのリストが表示されることを期待しています。

ダイアログで 1 つの項目のみを選択できるようにし、その選択をラジオ ボタンで表示するにはどうすればよいですか?

アップデート

アダプターの代わりにリスト項目ソースとしてsetSingleChoiceItemsa を渡すと、目的の結果が得られます。String[]

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Title")
       .setSingleChoiceItems(new String[] {"one","two","three"}, -1, new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which)
           {
             // Do nothing.
           }});

したがって、アダプターが問題を引き起こしているようです。理由はまだわかりません。

4

1 に答える 1

3

K-balloが示唆したように、問題はカスタムアダプターにありました。チェックボックス付きのカスタムレイアウトを使用していました。カスタムアダプタをに置き換えましたが、SimpleCursorAdapter期待どおりに機能します。

mAdapter = new SimpleCursorAdapter(getActivity(),
                                   android.R.layout.simple_list_item_single_choice,
                                   null,
                                   new String[] { "title" },
                                   new int[] { android.R.id.text1 },
                                   0);
于 2013-01-02T15:01:44.507 に答える