我有个这样的对话。
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();