如果您阅读了代码,您会看到我在对话框后面放了一个Toast消息。我希望它能够使得在同一个类中声明为public的“First”变量通过对话框的过程最终获得if语句并最终显示Toast内部的Toast消息来获取其值。 if语句。
最初我有一个名为“showDialogHOME”的方法,其中传递了以下所有代码。 我想我是这样尝试的,希望能解决这个问题。
此代码位于OnCreate()
// do stuff
myUserService.setEditedUser(editedUser);
$state.go()
----
// set user in other controller
$scope.user = myUserService.getEditedUser();
答案 0 :(得分:0)
问题是创建并显示AlertDialog后的行,在设置值之前不要等待并执行。
你可能想要使用一个事件:
alertDialog.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
if (First == 1){
Toast.makeText(getApplication(), "Inside If", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplication(), "After If Message", Toast.LENGTH_SHORT).show();
}
});
修改强> 你也可以试试这个:
alertDialog.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (items[item] == "X") {
First = 1;
//Toast.makeText(getApplication(), "Computer goes first.", Toast.LENGTH_SHORT).show();
} else if (items[item] == "O") {
First = 2;
if (First == 2) {
// Toast.makeText(getApplication(), "2 WORKS", Toast.LENGTH_SHORT).show();
}
}
dialog.dismiss();
if (First == 1) {
Toast.makeText(getApplication(), "Inside If", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplication(), "After If Message", Toast.LENGTH_SHORT).show();
}
}
});
alertDialog.show();