Вызов DialogFragment из ListActivity

У меня есть приложение для Android с основным действием, расширяющим список действий.

public class Main_activity extends ListActivity {...}

Из меню опций я хочу отправить часть предметов по почте. Чтобы выбрать элементы, я хочу отобразить диалоговый фрагмент.

Все работает нормально, но мне нужно начать новое намерение (потерять список), это расширение FragmentActivity, так как невозможно использовать getSupportFragmentManager из ListActivity.

startActivity (new Intent (this, Fragment_Activity.class));

и

public class Fragment_Activity extends FragmentActivity implements EditNameDialogListener {...}

Есть ли возможность отображать DialogFragment непосредственно из моей Main_activity? Что мне нужно изменить?


person Berolino    schedule 22.05.2013    source источник


Ответы (1)


Я бы посоветовал вам изменить Main_activity на расширение FragmentActivity. и переместите код списка в ListFragment. С вашей основной активностью, расширяющей FragmentActivity, это дает вам возможность показать фрагмент диалога без потери ListView и базовых данных.

ОБНОВЛЕНИЕ: Поскольку вы не хотите менять свой текущий дизайн, я вижу два пути вперед:

1 Переместите данные списка из ListActivity в какую-либо модель данных, чтобы не потерять их. Создайте статический класс для хранения данных списка или сохраните их в SharedPreferences.

2 Используйте настраиваемый диалог вместо DialogFragment

person britzl    schedule 22.05.2013
comment
Я ничего не делал с фрагментами до сих пор. После прочтения некоторое время это звучит непросто. Я думаю, мне придется остаться с моим текущим кодом, пока я не успею понять фрагменты. Спасибо за Ваш ответ... - person Berolino; 23.05.2013
comment
На самом деле это не так сложно, но если вы не хотите делать это прямо сейчас, я думаю, вам придется переместить данные списка из ListActivity в какую-то модель данных, чтобы вы не потеряли их. Создайте статический класс для хранения данных списка или сохраните их в SharedPreferences. - person britzl; 29.05.2013