【问题标题】:Android add Tabs in FragmentActivity tabHost on conditionAndroid 条件下在 FragmentActivity tabHost 中添加 Tabs
【发布时间】: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


    【解决方案1】:

    您是否尝试过更改 szyfr=="OTP"szyfr.equals("OPT")

    当您使用 == 运算符时,您正在将字符串对象与字符串进行比较

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多