2017-09-14 136 views
-1

當我從strings.xml字符串,我沒有得到一個錯誤的時候了,但我不能運行程序:從資源的strings.xml獲取字符串

String myButtonText = getString(R.string.ButtonText); 

(當我刪除此行,這個變量從我的程序它完美的作品)

我要是把我的程序,如果你需要它:

public class MainActivity extends AppCompatActivity { 

    private Button button; 
    String myButtonText = getString(R.string.ButtonText); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     button = (Button) findViewById(R.id.button); 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      if(myButtonText.equals("Red")){//the button's text is "red" already 
       button.setText("Blue"); 
      } 
      }//I'm changing the text on the button to "blue" when it says"red" 
     }); 
    } 
} 
+0

從類的頂部移除出處,並做到這一點的onCreate方法裏面:'myButtonText = getResources()的getString(R.string.ButtonText)' – joao86

回答

0

你應該在活動週期內調用getString(...),以確保所有的引擎蓋下的部件被初始化。

在你的榜樣,你應該叫myButtonText = getString(R.string.ButtonText);onCreate(...)

+0

謝謝你的工作,我沒有String myButtonText;然後在oncreat()中使用myButtonText – amirsoltani

1

你正在做的:

String myButtonText = getString(R.string.ButtonText); 

我認爲你必須檢索strings.xmlonCreate()方法值:

String myButtonText = getResources().getString(R.string.ButtonText); 
+0

還沒有運行 – amirsoltani

+0

你確定你在'strings.xml'中有文本。 –

+0

100%可以確定ButtonText的顏色變化 – amirsoltani

相關問題