Android диалоги хранятся и доступны через отдельный класс - PullRequest
0 голосов
/ 25 октября 2011

У меня ошибка переполнения стека, связанная с диалогами Android. У меня есть около 21 диалогов, содержащихся внутри оператора which с помощью showDialog (DIALOG1); отображать диалоги, которые прекрасно работают, когда и диалоги, и основное действие содержатся в одном и том же файле класса, но как только я перемещаю диалоги в другой файл класса и пытаюсь получить к ним доступ из основного действия, это вызывает ошибку переполнения стека. Я попытался расширить класс Dialog в классе диалогов, а также расширить класс, содержащий диалоги (основное действие расширяет classOfDialogs). Я не могу заставить диалоги работать из другого файла. Какие-либо предложения? Любая помощь будет принята с благодарностью! Спасибо!!

Трассировка стека (или что я мог бы собрать

Thread [<1> main] (Suspended (exception StackOverflowError))    
Looper.myLooper() line: 137 
Handler.<init>() line: 119  
AlphaAthensActivity(Activity).<init>() line: 679    
AlphaAthensActivity(Dialogs).<init>() line: 13  
AlphaAthensActivity.<init>() line: 55   
AlphaAthensActivity(Dialogs).<init>() line: 36  
AlphaAthensActivity.<init>() line: 55   
AlphaAthensActivity(Dialogs).<init>() line: 36  
AlphaAthensActivity.<init>() line: 55   
Class.newInstanceImpl() line: not available [native method] 
Class.newInstance() line: 1429  
Instrumentation.newActivity(ClassLoader, String, Intent) line: 1021 
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2577  
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2679   
ActivityThread.access$2300(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 125 
ActivityThread$H.handleMessage(Message) line: 2033  
ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 123 
ActivityThread.main(String[]) line: 4627    
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
Method.invoke(Object, Object...) line: 521  
ZygoteInit$MethodAndArgsCaller.run() line: 868  
ZygoteInit.main(String[]) line: 626 
NativeStart.main(String[]) line: not available [native method]  

1 Ответ

0 голосов
/ 25 октября 2011

Похоже, вы вызываете этот диалог рекурсивного действия.

AlphaAthensActivity(Activity).<init>() line: 679    
AlphaAthensActivity(Dialogs).<init>() line: 13  
AlphaAthensActivity.<init>() line: 55   
AlphaAthensActivity(Dialogs).<init>() line: 36  
AlphaAthensActivity.<init>() line: 55   
AlphaAthensActivity(Dialogs).<init>() line: 36  
AlphaAthensActivity.<init>() line: 55 

Во избежание нехватки памяти в приложении возникает исключение.Я думаю, что вам нужно изменить свой код.Лучшей идеей будет иметь диалоги в общем базовом классе и расширять его.

...