在textview中显示共享首选项

时间:2017-10-12 06:58:32

标签: java android

我试图创建一个简单的计算器应用程序,并希望最终的计算结果在应用程序关闭后不会消失。

我可以获取用户输入的数字以保持原位并正确计算结果,但是一旦应用程序关闭,结果就会消失?!

任何帮助将不胜感激!!

as_index=True

4 个答案:

答案 0 :(得分:0)

您可以将结果保存到文本视图中显示计算结果的位置,然后您将获得保存的内容以及您向用户显示的内容

答案 1 :(得分:0)

按如下方式初始化您的SharedPreference,

SharedPreferences prefs = this.getSharedPreferences(
      "com.example.app", Context.MODE_PRIVATE);

答案 2 :(得分:0)

试试这个,

首先,使用 result 方法中将 preferences 保存到 addNumbers >

prefs.edit().putString("result", sum.toString()).commit();

请参阅以下 addNumbers 方法的更改 - :

private String addNumbers() {
int number1;
int number2;
int number3;
int number4;
if (editText3.getText().toString() != "" && editText3.getText().length() > 0) {
    number1 = Integer.parseInt(editText3.getText().toString());
} else {
    number1 = 0;
}
if (editText4.getText().toString() != "" && editText4.getText().length() > 0) {
    number2 = Integer.parseInt(editText4.getText().toString());
} else {
    number2 = 0;
}
if (editText6.getText().toString() != "" && editText6.getText().length() > 0) {
    number3 = Integer.parseInt(editText6.getText().toString());
} else {
    number3 = 0;
}
if (editText8.getText().toString() != "" && editText8.getText().length() > 0) {
    number4 = Integer.parseInt(editText8.getText().toString());
} else {
    number4 = 0;
}

int sum = (number1 * 2) + (number2 * 4) + (number3 * 2) + (number4 * 2);
if (sum > 6) sum = 6;
prefs.edit().putString("result", sum.toString()).commit();
return sum + "";

  } 
}

result 是您的关键所在。因此,为了获得您存储的值,您可以使用 prefs 使用相同的键,例如

prefs.getString("result","");

preference 中获取 onCreate 的值,并将此值设置为 TextView 。请参阅下面的示例代码

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.calculator);

    final SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(this);

    String result= prefs.getString("result",""); //where "" is your default value
    if(!result.equals("") && !result.isEmpty()){
      textViewResult.setText(addNumbers());
    }


/*other code*/

答案 3 :(得分:0)

你可以像下面那样做..

  1. 创建一个保存SharedPreferences的方法

     private void savePreferences(String key, String value) {
         SharedPreferences sp = PreferenceManager
            .getDefaultSharedPreferences(this);
       Editor edit = sp.edit();
      edit.putString(key, value);
      edit.commit();
     }
    
  2. 将值保存到类似

    的方法
    savePreferences("autosave", s.toString());
    
  3. 从SharedPreferences查看数据表单,创建另一种方法,如

    private void loadSavedPreferences() {
      SharedPreferences sp = PreferenceManager
            .getDefaultSharedPreferences(this);        
       String autosave = sp.getString("autosave", "");
    
      editText3.setText(autosave);
    
    }
    
  4. 在活动&中的 oncreate 方法中调用 loadSavedPreferences 方法好好享受... 感谢...