Java 如何从其他活动创建动态选项卡
我在Test1Activity中有一个方法可以在TabHost中创建选项卡,但是如果我想让Test2Activity调用该方法,并且我必须将newTab方法设置为静态,我不能使用Intent,因为它利用“this”来设置类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
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