Android - невозможно закрыть AlertDialog с биллингом в приложении - PullRequest
0 голосов
/ 17 августа 2011

У меня проблема с 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();

1 Ответ

0 голосов
/ 16 апреля 2012

Я уверен, что этот вопрос уже давно решен, но вероятным решением было бы переместить buyCard(); выше dialog.dismiss();

Итак, вот так:

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

Причина в том, что диалог не может запустить строку buyCard();, так как вы уже отклонили ее. Вроде как пытаться запустить код после оператора return.

...