Android使用在OnCreate中绕过的对话框传递变量

时间:2015-11-07 23:12:02

标签: java android dialog

如果您阅读了代码,您会看到我在对话框后面放了一个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();

1 个答案:

答案 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();