2012-01-04 4 views
1

Мое приложение Android должно показать диалог при первом использовании приложения. Это приложение также использует собственный класс приложений, который расширяет класс приложений Androids. Я хочу использовать диалоговое окно DialogFragment для этого диалогового окна (поскольку в документации указано, что метод showDialog() устарел) и покажите этот DialogFragment в методе onCreate() моего пользовательского класса Applicaton. Код, чтобы показать DialogFragment выглядит следующим образом:Как показать фрагмент диалога в пользовательском классе приложений Android?

FragmentManager manager = getSupportFragmentManager(); 
DialogFragment firstUseDialog = new FirstUseDialog(); 
firstUseDialog.show(manager, "dialog"); 

Но метод getSupportFragmentManager() не доступен в классе Application, только в классах активность. Поэтому мой вопрос заключается в том, есть ли другой способ показать диалог из класса Application.

Я всегда могу перенести первый код использования в свою основную деятельность, но я просто хотел проверить, можно ли это сделать в классе Activity. Я чувствую, что аппликационная проверка первого использования должна быть частью класса Application, а не класса Activity.

ответ

2

Но метод getSupportFragmentManager() не доступен в классе Application, только в классах Activity.

getSupportFragmentManager() также не доступен от Activity. Он доступен от FragmentActivity пакета поддержки Android.

Так что мой вопрос в том, есть ли другой способ показать диалог из класса Application.

Не так.

Я чувствую, что аппликационная проверка первого использования должна быть частью класса Application, а не класса Activity.

Вы, безусловно, по вашему мнению. ИМХО, отображение пользовательского интерфейса является ответственностью за деятельность и только за деятельность. Тот факт, что это происходит только при первом использовании приложения, не меняет этого.

+0

Ok ТНХ для ответа. Я выполнил первую проверку использования в AsyncTask в моей основной деятельности, которая имеет доступ к методу getSupportFragmentManager(). –

0

, если в классе есть объект Context попробовать этот метод

(FragmentActivity)context).getSupportFragmentManager() 
Смежные вопросы