Android AlertDialog с динамично изменяющимся текстом по каждому запросу

Преобразование десятичных чисел в двоичные в Bash:

Я использую Ubuntu 14.04 для этого.

Преобразование десятичных чисел от 1 до 5 в двоичную форму.

el@apollo:~$ bc <<< "obase=2;1"
1
el@apollo:~$ bc <<< "obase=2;2"
10
el@apollo:~$ bc <<< "obase=2;3"
11
el@apollo:~$ bc <<< "obase=2;4"
100
el@apollo:~$ bc <<< "obase=2;5"
101

Бонусный пример:

el@apollo:~$ bc <<< "obase=2;1024"
10000000000

el@apollo:~$ bc <<< "obase=2;2^128"
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
25
задан Nikhil 22 June 2012 в 11:06
поделиться

4 ответа

Вы также можете использовать функцию removeDialog (int) в Activity. Когда диалог закрывается, Activity в основном сохраняет состояние диалога (как я могу представить, из соображений производительности). Вызов removeDialog (int) в диалоговом окне заставляет действие выгружать все ссылки для диалогового окна и закрывает его с экрана, если оно отображается.

Создание диалогов
Действие # removeDialog (int)

19
ответ дан 28 November 2019 в 18:32
поделиться

Взгляните на метод onPrepareDialog , который будет вызываться перед отображением диалогового окна. Здесь Вы можете изменить необходимые значения в зависимости от типа запроса.

Пример с выбором даты

@Override
protected Dialog onCreateDialog(final int id) {
  switch (id) {
  case DIALOG_DATE_ID:
    final Calendar c = Calendar.getInstance();
    return new DatePickerDialog(this, this, c.get(Calendar.YEAR),
                                c.get(Calendar.MONTH), 
                                c.get(Calendar.DAY_OF_MONTH));
  default:
    return super.onCreateDialog(id);
  }
}

@Override
protected void onPrepareDialog(final int id, final Dialog dialog) {
  switch (id) {
  case DIALOG_DATE_ID:
    //update to current time
    final Calendar c = Calendar.getInstance();
    ((DatePickerDialog) dialog).updateDate(c.get(Calendar.YEAR), 
                                           c.get(Calendar.MONTH), 
                                           c.get(Calendar.DAY_OF_MONTH));
    break;
  }
}
33
ответ дан 28 November 2019 в 18:32
поделиться

точно. для AlertDialog, созданного с помощью Builder.create () , onPrepareDialog () , бесполезен. Builder является односторонним в том смысле, что после создания диалогового окна вы не можете его обновить. я имею в виду, что не может быть свободно, я уверен, что вы могли бы получить дескриптор представления и сделать все это вручную, но это лишает смысла использование построителя в первую очередь.

единственное решение, которое я нашел, - это создать вручную / показать / закрыть диалоговое окно вместо использования onCreateDialog () , showDialog () и т. д. Я попытался вызвать removeDialog () , но это не помогло работа.

-3
ответ дан 28 November 2019 в 18:32
поделиться

Это дублированный вопрос: Android: Невозможно изменить текст, отображаемый в AlertDialog

Вы также можете сделать это следующим образом: http://andmobidev.blogspot.com/2010/03/modifying-alert-dialogs-list-items.html

Похоже, что отображение меню при длительном нажатии замедляется ...

4
ответ дан 28 November 2019 в 18:32
поделиться
Другие вопросы по тегам:

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