2014-12-17 2 views
0

Я следил за документами Google и создал внутренний класс для всплытия диалогового окна в приложении для Android.Получение доступа к глобальным переменным в статическом классе DialogFragment

Я запустил его в затмении некоторое время, не подозревая, что возникла ошибка, когда я импортировал приложение в андроид-студию, чтобы начать использовать стабильный выпуск. При попытке сборки я получал ошибку «Внутренний класс фрагмента должен быть статичным».

ОК, так что теперь я понимаю, что это плохо, но когда я меняю его на статичный, у меня теперь есть куча ссылок на (а) глобальные переменные и (б) «MainActivity.class», которые теперь являются ошибками.

Итак, внутри этого внутреннего класса DialogFragment, как мне получить доступ к моим глобальным переменным или передать их, и как я могу ссылаться на MainActivity.class?

Например:

final EditText input = new EditText(MainActivity.this); 


for (NewsEvent ne : filteredList) { //filteredList is global List of objects 
    ... 

Я вызываю диалог в onOptionsItemSelected так:

AlertDialogFragment alert = new AlertDialogFragment(); 
alert.show(this.getFragmentManager(), "Alerts"); 

ответ

1

Чтобы отправить Data в DialogFragment использовать static newInstance(params) метод.
Поместите Data в Intent и по методу onCreate() получите Data от Intent.

Проверить this пример из Android разработчика

+0

им не уверен, как я пропустил это, ТНХ – makapaka

Смежные вопросы