我想构建一个应用来报告收入和支出。 而且我想保留数据,比如有多少钱,时间和方式。 并构建像1 cola = -1.5 $之类的结构化类别。当我关闭应用程序并重新启动手机时,数据仍然保存。我只是一个初学者,所以我陷入了保持数据的步骤
现在我要做的是使用SharedPreferences来节省预算,然后在TextView中打印它。它不起作用。
我的活动:
public class Report extends AppCompatActivity {
Button mButton1;
EditText mEdit;
TextView mText;
Button mButton;
SharedPreferences menaPref;
SharedPreferences.Editor editor;
public static final String MY_PREFS_NAME = "My Money";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
mButton = (Button) findViewById(R.id.B_GetMoney);
mEdit = (EditText) findViewById(R.id.T_InputMoney);
mText = (TextView) findViewById(R.id.textView);
mButton1 = (Button) findViewById(R.id.B_try);
mButton.setOnClickListener(
new View.OnClickListener() {
public void onClick(View view) {
String value = mEdit.getText().toString();
;
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
SharedPreferences.Editor editor = pref.edit();
editor.putString("My Money", value);
String Show_My_Money = pref.getString("My Money", null);
mText.setText(Show_My_Money);
}
});
}
}
答案 0 :(得分:0)
您需要先.commit()
或.apply()
对编辑器进行更改后再对其进行更改。
editor.putString("My Money", value);
editor.commit()
pref.getString("My Money", null);
答案 1 :(得分:0)
您必须使用commit()或apply()来保存数据;)
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
SharedPreferences.Editor editor = pref.edit();
editor.putString("My Money", value);
editor.commit();
请参阅此文档:
https://developer.android.com/reference/android/content/SharedPreferences.Editor.html
答案 2 :(得分:0)
创建一个PrefHelper类
{2, 5}
只是为了读写而使用这些方法
public class PrefHelper{
private static final String PREF_NAME = "my_pref";
public static final String MY_MONEY= "my_money";
// put your others key here
Preferences() {
}
public static void writeBoolean(Context context, String key, boolean value) {
getEditor(context).putBoolean(key, value).commit();
}
public static boolean readBoolean(Context context, String key) {
return getPreferences(context).getBoolean(key, false);
}
public static void writeString(Context context, String key, String value) {
getEditor(context).putString(key, value).commit();
}
public static String readString(Context context, String key) {
return getPreferences(context).getString(key, null);
}
private static SharedPreferences getPreferences(Context context) {
return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}
private static SharedPreferences.Editor getEditor(Context context) {
return getPreferences(context).edit();
}
}