无法切换按钮上的文本以及保存该状态

时间:2017-09-14 22:25:14

标签: java android

我无法在按钮上切换文本并在当时保存。 我的代码如下

    switch(input_btn.getText())
    {
       case "A": input_btn.setText("B");break;
       case "B": input_btn.setText("A");break;
    }

我有一个按钮,只需将其上的文本从A切换到B

此代码是切换按钮所需的全部但是我的问题是我不确定在下次打开时我将如何保存文本。 如果我在switch语句后保存它只是说我要保存A. 然后A将被保存,它将在switch语句之前返回,但由于我的switch语句,我将文本设置为B.

这让我感兴趣,因为我实际上无法找到完成这项工作的方法。

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是使用SharedPreferences。

尝试这样的事情:

private void setInputButtonText(String value){
    input_btn.setText(value);

    //Save input text in SharedPreferences
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor edit = pref.edit();
    edit.putString("YourKeyNameHere", value);
    boolean success = edit.commit();
    // you can do something with success if you need

}

然后添加:

private void getLastInputButtonText(){
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    String lastInput = pref.getString("YourKeyNameHere");

    if(!lastInput.isEmpty()){
        input_btn.setText(lastInput);
    }
    //Else do what ever you need to do
}

getLastInputButtonText()内拨打onCreate()

现在您可以在之前的任何地方拨打电话:

String inputBtnText = input_btn.getText().toString();
switch(inputBtnText)
    {
       case "A": 
            setInputButtonText("B");
            break;
       case "B": 
            setInputButtonText("A");
            break;
    }