0

我想用简单的单选项目创建对话框。默认情况下,不选择任何项目。我只想要一个确定和取消按钮。在选择项目之前,确定按钮必须保持禁用状态。是否有一些内置的方法可以做到这一点,还是我必须创建自己的自定义对话框?这是我目前拥有的:

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) 返回 null。那么如何访问积极按钮?

4

3 回答 3

0

将侦听器设置为选定的项目并启用“确定”按钮

于 2012-05-24T13:56:18.287 回答
0

我最好的办法是继承 ListActivity。这是示例

为了使这个活动(在清单中)的样式很好地设置为某个对话框(最佳选择是“@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>
于 2012-05-24T14:19:22.057 回答
0

你需要显示对话框然后禁用按钮正面。

AlertDialog dialog =  builder.create();

dialog.show();

dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
于 2013-11-29T06:52:15.930 回答