我有个这样的对话。

AlertDialog.Builder mySortAlertDialog = new AlertDialog.Builder(this,
    AlertDialog.THEME_DEVICE_DEFAULT_DARK);
mySortAlertDialog.setTitle("Sort by?");
String[] r = {
    "Firstname", "Lastname"
};
mySortAlertDialog.setSingleChoiceItems(r, -1, new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {

    }
});

这创建了两个选项,现在我需要一个按钮来确认用户的选择。所以我这样做:
 mySortAlertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {@
         Override
         public void onClick(DialogInterface dialog, int which) {

现在问题是。我有两个监听器,一个用于检查选择了哪个选项,另一个用于确认选择并使用第一个监听器中的值执行逻辑。
我的问题是,如何使这两个侦听器交互,以便用户选择firstname或lastname,然后按ok,然后根据选择执行逻辑。
谢谢。
编辑:这就是我的对话…

最佳答案

使用您的代码,这应该可以完美地工作。(使用AlertDialog.getListView#getCheckedItemPosition

AlertDialog.Builder mySortAlertDialog = new AlertDialog.Builder(this);
mySortAlertDialog.setTitle("Sort by?");
String[] r = {"Firstname", "Lastname"};
mySortAlertDialog.setSingleChoiceItems(r, 0, null);

mySortAlertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(mContext, "Selected: " + ((AlertDialog)dialog).getListView().getCheckedItemPosition(), Toast.LENGTH_LONG).show();
    }
 });
 mySortAlertDialog.create().show();

10-01 14:57