2012-05-24 2 views
0

Я хочу создать диалог с простыми элементами для одного выбора. По умолчанию элементы не выбраны. Я хочу только кнопку «ОК» и «Отмена». Кнопка OK должна оставаться отключенной до тех пор, пока не будет выбран элемент. Есть ли какой-то встроенный способ сделать это или мне нужно создать собственный собственный диалог? Это в настоящее время, что у меня есть:Android: Создайте диалог выбора с отключенной кнопкой OK до тех пор, пока не будет выбран

AlertDialog.Builder builder = new AlertDialog.Builder(context); 

builder.setTitle(getString(R.string.lbl_MarkReviewAs)) 
    .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int item) 
     { 
     selectedReviewStatusIndex = item; 
     AlertDialog alertDialog = (AlertDialog)dialog; 
     alertDialog.getButton(0).setEnabled(true); 
     } 
    }) 
    .setPositiveButton(getString(R.string.lbl_ButtonOK), new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int whichButton) 
     { 
     dialog.dismiss(); 
     } 
    }) 
    .setNegativeButton(getString(R.string.lbl_ButtonCancel), new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int whichButton) 
     { 
     dialog.dismiss(); 
     } 
    }); 

AlertDialog dialog = builder.create(); 
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); 
dialog.show(); 

Проблема здесь состоит в том, что dialog.getButton (AlertDialog.BUTTON_POSITIVE) возвращает нуль. Итак, как мне получить доступ к положительной кнопке?

+0

Оказывается, вы не можете использовать getButton до тех пор, пока ПОСЛЕ диалога dialog.show не будет выполнен. – AndroidDev

ответ

0

набор слушателю Пункт выбран и включить кнопку «ОК»

0

I самое лучшее подкласс ListActivity. Вот example.

Чтобы сделать его приятным, установите стиль этого действия (в манифесте) в некоторый диалог (лучший выбор - «@android: style/Theme.DeviceDefault.Dialog»).

<activity android:name="YourDialogActivity" 
    android:label="@string/title" 
    android:theme="@android:style/Theme.DeviceDefault.Dialog"> 
    <intent-filter> 
      ... 
    </intent-filter> 
</activity> 
0

Вам необходимо показать диалоговое окно, после чего отключить кнопку Положительно.

AlertDialog dialog = builder.create(); 

dialog.show(); 

dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); 
Смежные вопросы