从资源的strings.xml获取字符串
问题描述:
当我从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"
});
}
}
答
你应该在活动周期内调用getString(...)
,以确保所有的引擎盖下的部件被初始化。
在你的榜样,你应该叫myButtonText = getString(R.string.ButtonText);
在onCreate(...)
+0
谢谢你的工作,我没有String myButtonText;然后在oncreat()中使用myButtonText – amirsoltani
答
你正在做的:
String myButtonText = getString(R.string.ButtonText);
我认为你必须检索strings.xml
内onCreate()
方法值:
String myButtonText = getResources().getString(R.string.ButtonText);
从类的顶部移除出处,并做到这一点的onCreate方法里面:'myButtonText = getResources()的getString(R.string.ButtonText)' – joao86