我在一个标签下有两个简单的活动(相对布局,每个托管一个按钮)。他们每个人都有一个相互链接,所以你可以从一个活动到另一个活动(一切都在同一个标签下工作)。程序在第3次循环后崩溃(第1次活动 - 第2次 - 第1次 - 第2次 - 第1次 - 第2次)。
我使用以下代码从一个活动转到另一个活动:
Tabs s = (Tabs) getParent();
Intent myIntent = new Intent(getApplicationContext(), Map.class);
View view = s.getLocalActivityManager().startActivity("map",
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
setContentView(view);
我在活动中的布局并不重要,基本上它仍然会在每个第3个循环中崩溃。
我没有其他想法,除了android解释这个导航(从同一个标签下的1个活动到另一个活动)作为不定式循环?这基本上是用户所做的,而不是我编程的循环。
是一些安卓漏洞还是我做错了什么?
我收到此错误:
02-17 10:36:00.566: E/AndroidRuntime(4155): FATAL EXCEPTION: main
02-17 10:36:00.566: E/AndroidRuntime(4155): java.lang.StackOverflowError
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.widget.TextView.getExtendedPaddingTop(TextView.java:1281)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.widget.TextView.getVerticalOffset(TextView.java:3570)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.widget.TextView.onDraw(TextView.java:4050)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.view.View.draw(View.java:6880)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
02-17 10:36:00.566: E/AndroidRuntime(4155): at android.view.View.draw(View.java:6883)
修改 好的,我知道为什么会出现这个错误。每次我从一个活动到另一个活动,我都会创建新的Intent并开始新的Activity。情况可能就是这样。 但我怎样才能重用它们?如果我尝试重用该视图,我会收到此错误:
02-17 13:14:03.429: E/AndroidRuntime(5374): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
答案 0 :(得分:0)
第一个可疑的事情是使用getApplicationContext()
。使用getApplicationContext()
“几乎总是错误的”,如下所述:When to call activity context OR application context?