Показ простых диалоговых окон сообщения

В моем действии я хотел бы показать простые информационные диалоговые окна, материал как:

new AlertDialog.Builder(context).setMessage(message).show();

если я сделаю это, то диалоговое окно протечет, когда я буду вращаться, тот телефон (не говоря уже о нем исчезнет также, таким образом, пользователь может пропустить его). Я могу использовать управляемые диалоговые окна, но я не уверен, как Вы используете его разумно для этих типов коротких сообщений? Похож на Вас, должны сделать это:

showDialog(SOME_DLG_ID);
...
@Override
onCreateDialog(int id) {
    if (id == SOME_DLG_ID) {
        new AlertDialog.Builder(context).setMessage(message).show();
    }
}

нет никакого способа передать то, чем сообщение должно быть в onCreateDialog начиная с переопределенный метод. Я не хотел бы сделать членскую переменную из родительского действия, которое просто хранит то, чем должно быть текущее сообщение. Как Вы все делаете это?

Спасибо

7
задан Mark 18 December 2009 в 17:09
поделиться

2 ответа

если я это сделаю, диалоговое окно потечет когда я поворачиваю телефон (не упомянуть, что он тоже исчезнет, ​​поэтому пользователь может его пропустить)

Вы можете добавить

<activity 
    android:configChanges="orientation|keyboardHidden"
>

в свой AndroidManifest.xml, чтобы предотвратить перезапуск активности при вращении телефона. Я использую его в своем приложении, и мой AlertDialog выдерживает вращение телефона.

4
ответ дан 7 December 2019 в 07:46
поделиться

Вы можете реализовать Activity.onPrepareDialog (int, Dialog) , чтобы отключить сообщение до того, как диалоговое окно отобразится на экране. Таким образом, вы можете сделать что-то вроде:

@Override protected void onPrepareDialog(int id, Dialog dialog) {
    if (id == SOME_DLG_ID) {
        ((AlertDialog) dialog).setMessage(message);
    }
}

Вам все равно придется отслеживать сообщение, которое вы в данный момент показываете в своей деятельности, но, по крайней мере, таким образом вы не создаете объект Dialog для каждого сообщения, которое хотите показать.

3
ответ дан 7 December 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: