java - 如何将额外内容传递给 TabActivity 内的 Intent ?

标签 java android android-intent android-tabhost tabactivity

我有一个托管许多选项卡的 TabActivity。每个选项卡都引用相同的 Activity ,但逻辑是在 Activity 内部执行的,以确定要加载的内容。我希望通过将 boolean 值传递给相应的选项卡来完成此操作。我怎样才能做到这一点?

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);
    }
}

最佳答案

听起来你做错了。为什么您希望将相同的 Activity 传递到所有选项卡?要么使用不同的 Activity ,要么使用不同的观点。不是同一个 Activity 。

关于java - 如何将额外内容传递给 TabActivity 内的 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4229958/

相关文章:

java - IPv6 地址验证和规范化

java - 将对象传递给方法时出现意外输出

Android:将图像附加到电子邮件 Intent - 错误

Android:java.lang.SecurityException:没有 uri 0 @content://com.android.chrome.FileProvider/BlockedFile 的权限

java - 使用 HTML 的 out.print 时如何打印资源的正确路径

java - java .properties 文件值中的换行符

java - ListItem焦点改变

android - 拆分 APK 后我应该选择哪一个?

java - 在 ListView 中保存 Checkbox 的状态,不能使游标最终化

android - 从 Activity 而不是父级返回主屏幕