我试图创建一个简单的计算器应用程序,并希望最终的计算结果在应用程序关闭后不会消失。
我可以获取用户输入的数字以保持原位并正确计算结果,但是一旦应用程序关闭,结果就会消失?!
任何帮助将不胜感激!!
as_index=True
答案 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)
你可以像下面那样做..
创建一个保存SharedPreferences的方法
private void savePreferences(String key, String value) {
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(this);
Editor edit = sp.edit();
edit.putString(key, value);
edit.commit();
}
将值保存到类似
的方法savePreferences("autosave", s.toString());
从SharedPreferences查看数据表单,创建另一种方法,如
private void loadSavedPreferences() {
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(this);
String autosave = sp.getString("autosave", "");
editText3.setText(autosave);
}
在活动&中的 oncreate 方法中调用 loadSavedPreferences 方法好好享受... 感谢...