- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
每一个!
一年前,我开发了一个组合“ActivityGroup + TabWidget”的应用程序,它在 android os 2.3+ 上运行良好。但是我在 os 4.0 上测试过,我发现它有时会崩溃。- 如果我打开应用程序,我什么都不做,然后点击“返回”,效果很好。- 如果我打开应用程序,在应用程序中导航(单击列表项,查看详细信息项然后返回),然后当我返回到选项卡的“根”页面时,我单击“返回”,它崩溃了。 (它应该正常关闭应用程序)--------在这种情况下, Activity 组启动新 Activity 并收到返回键事件- 如果我打开应用程序,像上面那样在应用程序中导航,但只看到 View 不是由 Activity 组启动的,而是由组中的根 Activity 启动的。我工作得很好。
我的ActivityGroup中有一些代码
public void startActivity(Intent intent) {
// Start the root activity withing the group and get its view
View view = getLocalActivityManager().startActivity(id, intent)
.getDecorView();
// Replace the view of this ActivityGroup
replaceView(view);
}
public void back() {
if(history.size() > 1) { //history = new ArrayList<View>(); global variable
history.remove(history.size()-1);
setContentView(history.get(history.size()-1));
mIds.pop();
}else {
finish(); // I tried to commment it too, but no lucks
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
back();
return true;
}
return super.onKeyDown(keyCode, event);
}
还有错误堆栈:
05-18 18:47:47.687: E/AndroidRuntime(6828): FATAL EXCEPTION: main
05-18 18:47:47.687: E/AndroidRuntime(6828): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1213)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:442)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.Activity.onBackPressed(Activity.java:2121)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.Activity.onKeyUp(Activity.java:2099)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.KeyEvent.dispatch(KeyEvent.java:2557)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.Activity.dispatchKeyEvent(Activity.java:2329)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1806)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1859)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1361)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.Activity.dispatchKeyEvent(Activity.java:2324)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1806)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.widget.TabHost.dispatchKeyEvent(TabHost.java:298)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1248)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1859)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1361)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.Activity.dispatchKeyEvent(Activity.java:2324)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1806)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3300)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewRootImpl.handleFinishedEvent(ViewRootImpl.java:3273)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2436)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.os.Handler.dispatchMessage(Handler.java:99)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.os.Looper.loop(Looper.java:137)
05-18 18:47:47.687: E/AndroidRuntime(6828): at android.app.ActivityThread.main(ActivityThread.java:4340)
05-18 18:47:47.687: E/AndroidRuntime(6828): at java.lang.reflect.Method.invokeNative(Native Method)
05-18 18:47:47.687: E/AndroidRuntime(6828): at java.lang.reflect.Method.invoke(Method.java:511)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-18 18:47:47.687: E/AndroidRuntime(6828): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-18 18:47:47.687: E/AndroidRuntime(6828): at dalvik.system.NativeStart.main(Native Method)
我没有使用Fragment,因为当我开发这个应用程序时它不是由android sdk发布的。
有什么想法吗?每个想法都会受到赞赏!!
谢谢!
最佳答案
您可以使用onBackPressed()
来达到您想要的效果,您可以通过以下方式使用它。
public void onBackPressed(){
//Your code here
super.onBackPressed();
}
最重要的是确保您已在 Activity 组中使用的所有子 Activity 中实现此方法。
关于android: 当我点击后退按钮时应用程序崩溃 (activitygroup + TabWidget),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658667/
我认为提出问题的最简单方法是首先演示我当前的工作流程是如何设置的: 有一个 TabHost,其选项卡之一是 ActivityGroup ActivityGroup 作为其中的一个Activity,调用
**一下提供伪代码,仅说明自己的理解,思路**/ /*************************************************/
我对 Activity 内部的微调器有问题, Activity 组的子项。当我点击 spinner 时,它没有展开并且出现“Force Close”窗口我检查了 Logcat 并捕获了“BadToke
我有一个标签主机,每个标签都有一个 Activity 组。 当应用程序启动并且我按下 editText 时,键盘出现了。当我开始 child Activity 然后返回主要 Activity 时,键盘
我正在制作包含三个选项卡的 android 应用程序..在第三个选项卡上有登录屏幕.. 当我点击登录按钮时......我想用包含 ListView 和注销按钮的 Activity 替换 Activit
我在使用 ActivityGroup 时遇到一个问题。我在 ActivityGroup 中有两个 Activity ,它们都使用菜单(覆盖 onCreateOptionMenu 和 onOptions
我的应用程序使用的是 TabHost。和 ActivityGroup 加载选项卡下的 Activity 。在我的第二个选项卡上,我打开 Activity 组“TabGroupActivity”...,
我需要在 TabHost 中的 Activity 中有一个列表。单击按钮时会打开列表。但是,我希望打开新 Activity 并将选项卡保持在顶部,因此我创建了一个类 TabActivityGroup,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我面临一个严重的问题,我无法在互联网上找到任何答案。在我的应用程序中,我有一个包含四个 Activity 的 Activity 组。在扩展 Activity 组的 Activity 中,我没有指定屏幕
每一个! 一年前,我开发了一个组合“ActivityGroup + TabWidget”的应用程序,它在 android os 2.3+ 上运行良好。但是我在 os 4.0 上测试过,我发现它有时会崩
所以我的应用程序中有一个默认的可搜索 Activity ,如果我在简单的 Activity 中按下搜索按钮,它就会工作。但是当我在内容是 ActivityGroup 而不是 Activity 的选项卡
我有一个包含 ActivityGroup 的 TabActivity 的应用程序。每个选项卡都工作正常,但对于一个特定的选项卡,我想在点击它时返回到第一个子 Activity (无论何时我们在此选项卡
由于 ActivityGroup 以 View 的形式管理 Activity,因此当我尝试返回调用 ActivityGroup 中的子 Activity 的父 Activity 时,不会调用 onRe
我创建了一个 TabActivity ... 在第一个选项卡中,我将类称为“输入” 我在调用“输入”类时使用 ActivityGroup .. 这个例子 TabGroupActivity parent
我有一组标签。在其中一个选项卡中,我想显示两种不同类型的功能。 所以我的问题是最好实现一个包含子 Activity 的 Activity 组,或者只创建一个 View 翻转器并在 View 之间切换。
我正在使用 ActivityGroup 生成多个 Activity 并在 TabActivity 的同一选项卡内切换 View 。 当我按下后退键时,这个方法在我的 ActivityGroup 中被调
我需要在我的应用程序的 TabHost 中实现嵌套 Activity 。我使用这样的 ActivityGroup 类: public class CustomActivityGroup exten
我有一个 ActivityGroup,其中有一个 Activity。我在此 Activity 中覆盖 onBackPressed()。但不幸的是,我的 onBackPressed() 没有被调用。所以
所以我有这个 ActivityGroup,我在其中显示了 2 个 Activity。当我切换时我想要这种过渡效果,当前 View 从屏幕左侧滑出,新 View 从右侧进入。这是我的切换代码,假设当前
我是一名优秀的程序员,十分优秀!