Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在tabhost中启动活动而不是片段_Android - Fatal编程技术网

Android 在tabhost中启动活动而不是片段

Android 在tabhost中启动活动而不是片段,android,Android,我想知道是否有一种方法可以让我启动一个活动,而不是在tabhost选项卡select上启动一个片段 如果要启动一个用户可以写文章然后保存的活动,我想完成什么,为什么我要这样做?因为当我想编辑时,我启动了一个活动,我不想让两个类做同样的事情,但有一点不同,而且底部的选项卡占用了太多的空间,使我的表单区域很小 我的代码实际上看起来像 @Override protected void onCreate(Bundle savedBundleState) { mTabHost.setup(getB

我想知道是否有一种方法可以让我启动一个活动,而不是在tabhost选项卡select上启动一个片段

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

我的代码实际上看起来像

@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
问候

public TabHost.TabSpec setContent(Intent) 指定用于启动活动的意图作为选项卡内容

您需要为
TabSpec

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

希望这能有所帮助。

我可能听起来很傻,但你能不能从片段中对该活动做出
意图
?我不确定是否要启动
活动
,而不是
片段
。我只想启动一个活动,不想执行任何其他操作,这类似于只需单击选项卡,而不在片段容器上执行任何操作,只启动活动。不知道如果可能或者看起来我被迫在这里使用片段,那么在Activity、ActvityGroup或TabActivity中使用TabHost的所有方法都不推荐,所以很快就会被删除,该死,我讨厌片段。但我会接受你的答案,因为从你的问题本身来看,你可以说你讨厌碎片D:)我不喜欢你用片段到处玩的方式,对我来说,在使用活动时代码仍然非常干净,在启动和活动时,或者当你想阅读一些需要调用getActivity()的资源时,你不能使用它。getResources()。。。你需要多写,而不是少写!不知道谷歌的工程师是喜欢这种方式还是苹果的方式,你的代码也需要很好;)