- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要在我的应用程序的 TabHost 中实现嵌套 Activity 。我使用这样的 ActivityGroup 类:
public class CustomActivityGroup extends ActivityGroup {
View rootView;
public static CustomActivityGroup group;
private ArrayList<View> history;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.history = new ArrayList<View>(); group = this;
View view = getLocalActivityManager().startActivity("LoginActivity", new Intent(this,RegisterActivity.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
replaceView(view);
}
@Override
protected void onResume() {
super.onResume();
this.history = new ArrayList<View>();
group = this;
}
public void replaceView(View v) {
if (history.size() == 0) {
if (rootView != null) {
history.add(rootView);
rootView = null;
}
}
history.add(v);
setContentView(v);
}
public void back() {
try {
if (history.size() > 0) {
history.remove(history.size() - 1);
if (history.size() > 0) {
setContentView(history.get(history.size() - 1));
} else {
finish();
}
} else {
finish();
}
} catch (Exception ex) {
}
}
public int getHistorySize() {
return history.size();
}
@Override
public void onBackPressed() {
try {
CustomActivityGroup.group.back();
} catch (Exception ex) {
}
return;
}
}
在我的 TabActivity 中:
intent = new Intent().setClass(this, CustomActivityGroup.class);
spec = tabHost.newTabSpec("tab_2").setIndicator("Sign up",getResources().getDrawable(R.drawable.signup)).setContent(intent);
tabHost.addTab(spec);
但是当我点击相应的标签时,我得到了
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assignmentexpert/com.activitygroups.CustomActivityGroup}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assignmentexpert/com.assignmentexpert.RegisterActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@405ceb00 is not valid; is your activity running?
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.startActivityNow(ActivityThread.java:1491)
at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:676)
at android.widget.TabHost.setCurrentTab(TabHost.java:348)
at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:141)
at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:456)
at android.view.View.performClick(View.java:2485)
at android.view.View$PerformClick.run(View.java:9080)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assignmentexpert/com.assignmentexpert.RegisterActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@405ceb00 is not valid; is your activity running?
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.startActivityNow(ActivityThread.java:1491)
at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
at com.activitygroups.CustomActivityGroup.onCreate(CustomActivityGroup.java:31)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
... 18 more
Caused by: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@405ceb00 is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:532)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.view.Window$LocalWindowManager.addView(Window.java:424)
at android.app.Dialog.show(Dialog.java:241)
at com.asynctaskbase.AbstractTaskProgressDialogFragment.onCreateDialog(AbstractTaskProgressDialogFragment.java:68)
at com.asynctaskbase.AbstractTaskProgressDialogFragment.onCreateDialog(AbstractTaskProgressDialogFragment.java:1)
at android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:295)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:871)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:523)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
at android.app.Activity.performStart(Activity.java:3791)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
... 24 more
我做错了什么?
最佳答案
我找到了这个问题的原因。我将我的 FragmentActivities 添加到 ActivityGroup,然后在 TabHost 中使用它们。当我单击名为 ProgressDialog 的按钮时,我得到了这个异常。我应该这样创建它
progressDialog = new ProgressDialog(getActivity().getParent());
,不是
progressDialog = new ProgressDialog(getActivity());
关于android - TabActivity 使用的 BadTokenException ActivityGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14836420/
我认为提出问题的最简单方法是首先演示我当前的工作流程是如何设置的: 有一个 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 从右侧进入。这是我的切换代码,假设当前
我是一名优秀的程序员,十分优秀!