【问题标题】:Text of buttons are not changing [duplicate]按钮的文本没有改变[重复]
【发布时间】:2017-06-29 14:18:54
【问题描述】:

我正在尝试通过变量(语言)更改文本,但即使语言变量的值为 "albanian" ,按钮的文本也不会改变!

P.S 变量值是从另一个活动传递过来的。

String language="";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.single_level_activity_layout);

    btnBegginer=(Button)findViewById(R.id.btnBegginer);
    btnMedium=(Button)findViewById(R.id.btnMedium);
    btnHard=(Button)findViewById(R.id.btnHard);

    Intent objIntent=getIntent();
    language=objIntent.getStringExtra("language");

    //Toast.makeText(getApplicationContext(),language,Toast.LENGTH_LONG).show();

    if (language=="albanian")
    {
        btnBegginer.setText("FILLESTAR");
        btnMedium.setText("MESATARE");
        btnHard.setText("VESHTIRE");
    }
    else
    {
        btnBegginer.setText("BEGGINER");
        btnMedium.setText("MEDIUM");
        btnHard.setText("HARD");
    }

【问题讨论】:

  • 您不应该对字符串进行硬编码,尤其是在需要本地化的情况下。您应该将字符串放入您的string.xml 文件中,并根据系统设置提供替代文件。更多详情请见this

标签: android button text settext


【解决方案1】:

永远不要使用 == 比较字符串 使用 .equals()

if (language.equals("albanian"))
{
    btnBegginer.setText("FILLESTAR");
    btnMedium.setText("MESATARE");
    btnHard.setText("VESHTIRE");
}
else
{
    btnBegginer.setText("BEGGINER");
    btnMedium.setText("MEDIUM");
    btnHard.setText("HARD");
}

【讨论】:

  • 非常感谢。我是 Java 新手
【解决方案2】:

在 Java 中比较字符串时,请使用 equals() 方法。例如:stringValue.equals("Test") 返回真/假。

【讨论】:

  • 非常感谢。我是 Java 新手
猜你喜欢
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
相关资源
最近更新 更多