当我从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 :(得分:1)
你在做:
String myButtonText = getString(R.string.ButtonText);
我认为您必须从strings.xml
方法{/ 1>}中的onCreate()
检索值
String myButtonText = getResources().getString(R.string.ButtonText);
答案 1 :(得分:0)
您应该在活动生命周期内调用getString(...)
,以确保初始化所有组件。
在您的示例中,您应该在myButtonText = getString(R.string.ButtonText);
onCreate(...)