从资源strings.xml获取字符串

时间:2017-09-14 00:28:30

标签: android

当我从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"
        });
    }
}

2 个答案:

答案 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(...)