Вызов метода действия из диалога - PullRequest
0 голосов
/ 22 декабря 2010

У меня есть интерфейс вкладок с двумя отдельными действиями, давайте назовем их ActA и ActB.Обе эти операции могут запускать пользовательский диалог, и я хотел бы, чтобы кнопка в этом диалоге вызывала метод ActBs (ActB - это ListView базы данных, а рассматриваемый метод - заполнить список, в основном обновить),Как я мог иметь ссылку на действие ActB диалогового окна для вызова его метода?Спасибо!

РЕДАКТИРОВАТЬ: Я дам некоторые подробности.Я разработал эту программу из учебника Google Notepad, в котором рассказывается о БД SQLite.Я взял это и разделил его на два действия: одно для создания записей, а затем их сохранения (ActA);и еще один для просмотра записей (ActB).Теперь, совсем недавно, я помещаю эти действия во вкладки, а не к ним через клавишу меню телефона.К сожалению, это, кажется, остановило ListActivity от вызова его метода "fillData ()".

Ответы [ 3 ]

1 голос
/ 22 декабря 2010

Если вы расширяете класс android Dialog , вы можете реализовать Dismiss Listener в своей деятельности и установить его при создании диалога, а затем вСлушатель реализует любые функции, которые вы хотите, в зависимости от кнопки, которая использовалась для закрытия диалогового окна.


Если ваш пользовательский диалог представляет собой само действие, и вы вызываете его с startActivity , вы можетеизмените его на startActivityForResult и внедрите в кнопку обновления диалогового окна a setResult с пользовательским намерением информировать вызывающую активностьчтобы обновить себя.

Для получения дополнительной информации о том, как использовать startActivityForResult, посмотрите здесь .

0 голосов
/ 25 июля 2012
ImageButton button= (ImageButton) dialog.findViewById(R.id.imageButton5);      
button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        finish();
        Intent myIntent = new Intent(getBaseContext(), Abc.class);
        startActivity(myIntent);
    }
});

Попробуйте этот код, чтобы начать новое действие нажатием кнопки диалога.

0 голосов
/ 22 декабря 2010

A) Одним из способов является использование Broadcasts и BroadcastReceiver: http://developer.android.com/reference/android/content/BroadcastReceiver.html Вы определяете определенные фильтры намерений для своих действий, а затем отправляете широковещательную передачу через sendBroadcast (намерение), где намерение вызывает метод в ваших действиях.1003 *

B) Другой способ: определить интерфейс, который реализуют оба действия, то есть handleDialogButton.Поскольку вы передаете контекст в конструкторе диалогов, вы можете выполнить с ним некоторые действия.

...