0

我用于启动应用内购买的 AlertDialog 出现问题。当用户点击“购买”按钮时,应用内购买会按预期触发,但 AlertDialog 不会关闭。然后,当应用内购买完成时,程序返回到我的应用程序,但 AlertDialog 仍然打开。

如果我注释掉 buyCard() 函数,AlertDialog 将关闭。知道为什么在涉及应用内计费时 AlertDialog 没有关闭吗?

final CharSequence[] items = {"Buy","Close"};

AlertDialog.Builder builder = new AlertDialog.Builder(Card.this);
builder.setTitle("Want to Buy?");
builder.setItems(items, new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int item) {
        if(item == 0) { // BUY THE ITEM
            dialog.dismiss();
            buyCard();
        } else if (item == 1) { // Don't Buy
            dialog.dismiss();
        }
    }
});

AlertDialog alert = builder.create();
alert.show();
4

1 回答 1

0

我敢肯定这个问题早就想通了,但可能的解决方案是移到buyCard();上面dialog.dismiss();

所以,像这样:

    if(item == 0) { // BUY THE ITEM
        buyCard();
        dialog.dismiss();
    } else if (item == 1) { // Don't Buy
        dialog.dismiss();
    }

原因是,对话框无法运行,buyCard();因为您已经将其关闭。有点像在声明之后尝试运行代码return

于 2012-04-16T18:15:03.027 回答