我在Test1Activity中有一个方法在TabHost中创建选项卡,但如果我想让Test2Activity调用该方法,并且我必须将newTab方法设置为static,我不能使用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");
}
如何解决此问题以使其正常工作?
答案 0 :(得分:1)
使用静态Context
有一些技巧。我偶尔做的一件事是创建一个静态Context并在onCreate
中初始化它。例如:
public class Example extends Activity {
public static Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
}
}
然后,当您构建新的Intent
对象时,请使用context
代替this
。
答案 1 :(得分:0)
为什么活动会这样做?您应该考虑使用服务/广播记录器组合,以便活动可以更新。如果您传递信息 DIRECTLY ,则可以对活动进行活动。