Вопрос по android – WindowManager $ BadTokenException в Android

1

Прежде всего, я хорошо знаю, что эта ошибка возникает, потому что я пытаюсь вызвать окно / диалог черезContext это неActivity.

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

В моем классе Activity у меня следующий набор кодов;

<code>HomeClass homeClass = new HomeClass();
homeClass.showSplashScreen();
</code>

Тогда в моем HomeClass у меня есть следующий набор кодов;

<code>public void showSplashScreen() {        
 splashDialog = new Dialog(HomeActivity.getAppContext(), R.style.SplashScreen);
 splashDialog.setContentView(R.layout.splash_screen);
 splashDialog.setCancelable(false);
 splashDialog.show();
}
</code>

Поддерживая этот дизайн, есть ли способ избавиться отWindowManager$BadTokenException

Благодарю вас

Забыл упомянутьgetAppContext() статическая ссылка на класс Activity Значит есть сегмент кода типаHomeActivity.homeActivityContext = getApplicationContext(); в моем классе деятельности и изgetAppContext это возвращает эту переменную. AnujAroshA

Ваш Ответ

2   ответа
0

Делай как это ..

HomeClass homeClass = new HomeClass();
homeClass.showSplashScreen(Your Actvity);

В твоем домашнем классе

public void showSplashScreen(Activity curActivity) {        
 splashDialog = new Dialog(curActivity, R.style.SplashScreen);
 splashDialog.setContentView(R.layout.splash_screen);
 splashDialog.setCancelable(false);
 splashDialog.show();
}
Error: User Rate Limit Exceeded AnujAroshA
Error: User Rate Limit Exceeded AnujAroshA
Error: User Rate Limit Exceeded
1

HomeClass homeClass = new HomeClass(this);
homeClass.showSplashScreen();

В свой класс Home .. добавить параметрический конструктор ..

public class Home {
private Context context;
public Home(Context context){
this.context = context;
}
public void showSplashScreen() {        
splashDialog = new Dialog(context, R.style.SplashScreen);
 splashDialog.setContentView(R.layout.splash_screen);
 splashDialog.setCancelable(false);
splashDialog.show();
}
Error: User Rate Limit Exceeded AnujAroshA
Error: User Rate Limit Exceeded

Похожие вопросы