【发布时间】:2014-05-21 09:29:02
【问题描述】:
所以我正在制作一个关于密码的简单应用程序,这就是我想要做的:
Bundle extras = getIntent().getExtras();
szyfr = extras.getString("szyfr");
我根据用户将要选择的内容从主要活动中传递一个变量,现在我遇到了问题。
如果我的变量等于“Cezar”,我想创建 3 个选项卡,如果我的变量等于“OTP”,我想创建 4 个选项卡。我试图使用简单的 IF 条件,但它并没有真正起作用(我检查了变量是否正确传递并且它是正确的)。这一切都是在 FragmentActivity 类的 OnCreate 中完成的。
private FragmentTabHost mTabHost;
mTabHost = (FragmentTabHost) findViewById(R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.tabFrameLayout);
mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Historia"),
OTPFragment1.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Szyfrowanie"),
OTPFragment2.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Deszyfrowanie"),
OTPFragment3.class, null);
if(szyfr=="OTP")
{
mTabHost.addTab(mTabHost.newTabSpec("tab4").setIndicator("Inne"),
OTPFragment4.class, null);
}
如您所见,每个选项卡都有不同的片段,它们都正确显示,但如果我使用此条件,则每次只有 3 个显示,无论用户要选择什么。
如果有人需要确保它正常工作,变量会以这种方式传递:
Intent intent = new Intent(MainActivity.this, OTP.class);
intent.putExtra("szyfr", "OTP");
startActivity(intent);
我不认为以编程方式添加标签是这里的答案,因为我希望我的标签每次都相同,但有时我想要一个额外的标签。
【问题讨论】:
标签: android-fragments tabs android-tabhost conditional-statements android-fragmentactivity