【问题标题】:Android Dialogs stored and accessed via separate class通过单独的类存储和访问的 Android 对话框
【发布时间】:2011-10-24 23:47:12
【问题描述】:

我遇到了与 android 对话框相关的堆栈溢出错误。我在使用 showDialog(DIALOG1); 的 which 语句中包含大约 21 个对话框。当对话框和主要活动都包含在同一个类文件中时,显示效果很好的对话框,但是一旦我将对话框移动到另一个类文件并尝试从主要活动中访问它们,就会导致堆栈溢出错误。我尝试在对话框类中扩展 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]  

【问题讨论】:

  • 抱歉,我是 Stack Overflow 的新手

标签: android android-layout dialog android-alertdialog


【解决方案1】:

看起来您正在递归调用此 Activity 的 Dialog。

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 

为避免应用程序内存不足,抛出此异常。我认为你需要重新设计你的代码。一个更好的主意是将对话框放在一个公共基类中并对其进行扩展。

【讨论】:

  • 看看这就是我现在所拥有的,如果我将对话框包含到主活动类中,一切正常,但是当我将它们移动到一个公共基类并扩展它时,我得到了这个堆栈溢出跨度>
猜你喜欢
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多