2017-06-29 85 views
0

我試圖通過變量(語言)來改變文本,但即使語言變量的值是「阿爾巴尼亞」,按鈕的文本也沒有改變!按鈕文本沒有改變

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"); 
    } 
+0

你不應該硬編碼字符串,尤其是如果它受到定位。您應該將字符串放入'string.xml'文件中,並根據系統設置提供替代文件。查看[this](https://developer.android.com/guide/topics/resources/localization.html)瞭解更多詳情 – Sunshinator

回答

0

永遠不要使用==比較字符串使用.equals()

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

非常感謝。我在Java方面相對較新 – KosovoDev

0

當比較Java中的字符串時,使用equals()方法。例如:stringValue.equals("Test")返回true/false。

+0

非常感謝。我在Java相對較新 – KosovoDev