Java 如何从其他活动创建动态选项卡

Java 如何从其他活动创建动态选项卡,java,android,android-activity,tabs,Java,Android,Android Activity,Tabs,我在Test1Activity中有一个方法可以在TabHost中创建选项卡,但是如果我想让Test2Activity调用该方法,并且我必须将newTab方法设置为静态,我不能使用Intent,因为它利用“this”来设置类 public class Test1Activity extends TabActivity { public static void newTab(String tabIdentifier) { TabHost.TabSpec spec; // R

我在Test1Activity中有一个方法可以在TabHost中创建选项卡,但是如果我想让Test2Activity调用该方法,并且我必须将newTab方法设置为静态,我不能使用Intent,因为它利用“this”来设置类

public class Test1Activity extends TabActivity {
    public static void newTab(String tabIdentifier) {
        TabHost.TabSpec spec;  // Reusable TabSpec for each tab
        Intent intent = new Intent().setClass(this, ChatActivity.class);
        spec = Test1Activity.tabHost.newTabSpec(tabIdentifier).setIndicator(tabIdentifier, null).setContent(intent);
        tabHost.addTab(spec);
        modifyTabSize();
    }
}

public class Test1Activity extends TabActivity {
    Test1Activity.newTab("Joe");
}

如何修复此问题以使其正常工作?

为什么活动会这样做?您应该考虑使用服务/广播接收组合,以便活动可以更新。如果您直接将信息传递给活动,则可以执行活动到活动的操作

为什么活动会这样做?您应该考虑使用服务/广播接收组合,以便活动可以更新。如果您直接传递信息

可以实现活动到活动的转换。使用静态
上下文有几个技巧。我偶尔做的一件事是创建一个静态上下文,并在
onCreate
中初始化它。例如:

public class Example extends Activity {
    public static Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
    }
}

然后,当您构建一个新的
Intent
对象时,使用
context
而不是
this

使用静态
上下文有几个技巧。我偶尔做的一件事是创建一个静态上下文,并在
onCreate
中初始化它。例如:

public class Example extends Activity {
    public static Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
    }
}
然后,当您构建一个新的
Intent
对象时,使用
context
而不是
this