简体   繁体   English

如何将其他内容传递给TabActivity内部的意图?

[英]How can I pass extras to an intent inside of a TabActivity?

I have a TabActivity that hosts many tabs. 我有一个承载许多选项卡的TabActivity。 Each tab refers to the same activity, however logic is performed inside the activity that determines what to load. 每个选项卡都引用相同的活动,但是在活动内部执行逻辑以确定要加载的内容。 I would like this to be done by passing a boolean to the respective tab. 我希望通过将布尔值传递给相应的选项卡来完成此操作。 How can I do this? 我怎样才能做到这一点?

package com.stocktwits.activity;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

public class StockTwitsTabActivity extends TabActivity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.stocktwits_tab_activity);

        Resources res = getResources(); // Resource object to get Drawables
        TabHost tabHost = getTabHost();  // The activity TabHost
        TabHost.TabSpec spec;  // Resusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab

        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent().setClass(this, StreamActivity.class);

        // Initialize a TabSpec for each tab and add it to the TabHost
        intent.putExtra("reloadAll", true);
        spec = tabHost.newTabSpec("all").setIndicator("All",res.getDrawable(R.drawable.icon)).setContent(intent);
        tabHost.addTab(spec);

        // Do the same for the other tabs
        intent = new Intent().setClass(this, StreamActivity.class);
        spec = tabHost.newTabSpec("home").setIndicator("Home",res.getDrawable(R.drawable.icon)).setContent(intent);
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, StreamActivity.class);
        spec = tabHost.newTabSpec("mentions").setIndicator("Mentions",res.getDrawable(R.drawable.icon)).setContent(intent);
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, StreamActivity.class);
        spec = tabHost.newTabSpec("directs").setIndicator("Directs",res.getDrawable(R.drawable.icon)).setContent(intent);
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, StreamActivity.class);
        spec = tabHost.newTabSpec("more").setIndicator("More",res.getDrawable(R.drawable.icon)).setContent(intent);
        tabHost.addTab(spec);

        tabHost.setCurrentTab(0);
    }
}

It sounds like you're doing it wrong. 听起来您做错了。 Why would you want the same activity passed to all the tabs? 为什么要将相同的活动传递给所有选项卡? Either use different activities, or different views. 使用不同的活动或不同的视图。 Not the same activity. 不一样的活动。

Look at here 这里

Let me know if this is a valid solution for your purpose 让我知道这是否是有效的解决方案

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM