android - 在 tabhost 中启动 Activity 而不是 fragment

标签 android

我想知道是否有一种方法可以启动 Activity 而不是在 tabhost 选项卡选择上启动 fragment 。

如果启动一个用户可以写帖子然后保存的 Activity ,我想要完成什么,为什么我想要这个?因为当我想编辑时,我启动了一个 Activity ,我不想让 2 个类做同样的事情,但有一点不同,而且底部的选项卡占用了太多空间,使我的表单区域很小。

我的代码实际上看起来像

@Override
protected void onCreate(Bundle savedBundleState) {
    mTabHost.setup(getBaseContext(), getSupportFragmentManager(), R.id.realtabcontent);
    // This starts the HomeFragment
    mTabHost.addTab(newTabSpec("tabHome", R.layout.tab_home), HomeFragment.class, null);
    // This throws an error
    mTabHost.addTab(newTabSpec("tabPost", R.layout.tab_post));
    mTabHost.setOnTabChangedListener(this);
}

private TabSpec newTabSpec(String tag, int layout) {
    View view = getLayoutInflater().inflate(layout, null);
    return mTabHost.newTabSpec(tag).setIndicator(view);
}

@Override
public void onTabChanged(String tabId) {
    if (tabId == "tabAddPublication") {
        startActivity(new Intent(getBaseContext(), PostActivity.class));
    }
}

我遇到了这个错误

you must specify a way to create a tab content

问候

最佳答案

来自Documents

public TabHost.TabSpec setContent (Intent intent) Specify an intent to use to launch an activity as the tab content.

需要为TabSpec设置内容

Intent postActivityIntent = new Intent(this, PostActivity.class);
mTabHost.newTabSpec(tag).setContent(postActivityIntent);

希望这对您有所帮助。

关于android - 在 tabhost 中启动 Activity 而不是 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25654553/

相关文章:

android - 使用 AppCompatActivity 而不是 Actionbar 时出现运行时错误

java - Android Studio - 编译 OpenCV 时错误找不到符号类 R

当 18、15 和 8 已经下载时需要 android target 16?

java - 如何从单独的 Activity 中从回收者 View 中删除卡片 View

java - NestedScrollView 重叠工具栏(它们位于 fragment 布局内部)

如果没有 Provides-annotated 方法,则无法提供 Android dagger

android - Android:播放心率BPM声音

android - setprop libc.debug.malloc = 1 不工作

android - Kotlin:初始化函数和变量初始化

java - 由于 Java 版本不正确,Android fastboot 构建失败