Android对话框通过单独的类存储和访问

Android对话框通过单独的类存储和访问,android,android-layout,dialog,android-alertdialog,Android,Android Layout,Dialog,Android Alertdialog,我有一个关于android对话框的堆栈溢出错误。我使用showDialog(DIALOG1)在which语句中包含了大约21个对话框;要显示对话框,当对话框和主活动都包含在同一个类文件中时效果很好,但一旦我将对话框移动到另一个类文件中并尝试从主活动访问它们,就会导致堆栈溢出错误。我已经尝试在Dialog类中扩展Dialog类以及扩展包含对话框的类(主活动扩展ClassOfDialog)。我似乎无法从另一个文件访问对话框。有什么建议吗?任何帮助都将不胜感激!谢谢 堆栈跟踪(或我可以收集的内容) T

我有一个关于android对话框的堆栈溢出错误。我使用showDialog(DIALOG1)在which语句中包含了大约21个对话框;要显示对话框,当对话框和主活动都包含在同一个类文件中时效果很好,但一旦我将对话框移动到另一个类文件中并尝试从主活动访问它们,就会导致堆栈溢出错误。我已经尝试在Dialog类中扩展Dialog类以及扩展包含对话框的类(主活动扩展ClassOfDialog)。我似乎无法从另一个文件访问对话框。有什么建议吗?任何帮助都将不胜感激!谢谢

堆栈跟踪(或我可以收集的内容)

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]  
Thread[main](挂起(异常堆栈溢出错误))
Looper.myLooper()行:137
处理人。()行:119
字母感应活动(活动)。()行:679
字母感应(对话)。()行:13
字母感应。()行:55
字母感应(对话)。()行:36
字母感应。()行:55
字母感应(对话)。()行:36
字母感应。()行:55
Class.newInstanceImpl()行:不可用[本机方法]
Class.newInstance()行:1429
newActivity(类加载器、字符串、意图)行:1021
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord,Intent)行:2577
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord,Intent)行:2679
ActivityThread.access$2300(ActivityThread,ActivityThread$ActivityRecord,Intent)行:125
ActivityThread$H.handleMessage(消息)行:2033
ActivityThread$H(处理程序)。dispatchMessage(消息)行:99
Looper.loop()行:123
ActivityThread.main(字符串[])行:4627
invokenactive(Object,Object[],Class,Class[],Class,int,boolean)行:不可用[本机方法]
调用(对象,对象…)行:521
ZygoteInit$MethodAndArgsCaller.run()行:868
颧骨单位。主(字符串[])行:626
NativeStart.main(字符串[])行:不可用[本机方法]

看起来您正在递归调用此活动的对话框

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 
AlphaAthensActivity(活动)。()行:679
字母感应(对话)。()行:13
字母感应。()行:55
字母感应(对话)。()行:36
字母感应。()行:55
字母感应(对话)。()行:36
字母感应。()行:55

为了避免应用程序内存不足,会引发此异常。我认为您需要重新设计代码。更好的办法是将对话框放在一个公共基类中并扩展它。

对不起,我是堆栈溢出新手。请看,这就是我现在的情况,如果我将对话框包括在主活动类中,一切都可以正常工作,但没有当我将它们移动到一个公共基类并扩展它时,我得到了这个堆栈溢出