Обновление активности при исчезновении диалога - PullRequest
2 голосов
/ 15 февраля 2012

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

Ответы [ 7 ]

2 голосов
/ 15 февраля 2012

вам также необходимо удалить удаленный элемент из адаптера перед вызовом адаптера notifyDataSetChanged (), чтобы обновить ваш список

1 голос
/ 15 февраля 2012

Если вы используете список массивов, то вы обязательно должны знать позицию элемента и, используя эту позицию, вы можете удалить элемент из списка. Затем вызовите

     yourlist.remove(position);
     adapter.notifyDataSetChanged();

запустите вашу программу, чтобы наблюдать за магией.

1 голос
/ 15 февраля 2012

Попробуй это, реализовать диалоговое окно прослушивания слушателя и проверить, нажал ли пользователь вашу кнопку «удалить», если да, то выполните обновление

        dialog.setOnDismissListener(new OnDismissListener() {

            @Override
            public void onDismiss(DialogInterface dialog) {

            }
        })

Обновите представление списка, заново установив apdater ....

1 голос
/ 15 февраля 2012

Пожалуйста, попробуйте следующий код,

private final Handler handler = new Handler();

создайте функцию с именем: doTheAutoRefresh (), которая выполняет:

private void doTheAutoRefresh() {
    handler.postDelayed(new Runnable() {
             doRefreshingStuff(); // this is where you put your refresh code
             doTheAutoRefresh();
         }, 1000);
}

Вызовите эту функцию в вашем onCreate.

ПРИМЕЧАНИЕ: это основной подход.рассмотрите возможность остановки после вызова onPause и возобновите его после onResume.Посмотрите на класс обработчика, чтобы увидеть, как удалить.

0 голосов
/ 28 апреля 2018

Вы можете переопределить метод активности onWindowFocusChanged(boolean hasFocus) и отслеживать состояние своей активности.

Обычно, если над вашей активностью отображается какое-то диалоговое окно с предупреждением, действие не получает onPause() и onResume() событий,Но он теряет фокус на отображаемое диалоговое окно с предупреждением и получает его после закрытия.

В вашем случае вы можете обновить данные в onWindowFocusChanged(), если hasFocus равно true.

0 голосов
/ 15 февраля 2012

очистить список с помощью list.clear (); и установите адаптер так адаптер = новый адаптер (это); enter code here listView.setAdapter (адаптер);

0 голосов
/ 15 февраля 2012

При закрытии вызова Dialog

yourAdapter.notifyDataSetChanged()

на вашем адаптере списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...