我无法保存整数
I can't save integer
我想在我的应用程序内存中保存计数器并显示它。
我试过 sharedpreferences
但没用。
public class MainActivity extends AppCompatActivity {
SharedPreferences sharedPreferences;
int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
counter = counter + 1;
tvCounter.setText(String.valueOf(counter));
}
});
}
protected int Counter(View view) {
SharedPreferences settings = getSharedPreferences(String.valueOf(counter), 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("int value", counter);
editor.commit();
sharedPreferences.getInt(String.valueOf(counter), -1);
return 0;
}
}
计数器正在运行,但应用程序未保存任何内容。
SharedPreferences 保存键值对。
editor.putInt("int value", counter);
您正在键 "int value" 中保存计数器的值。
并试图通过错误的密钥检索它
sharedPreferences.getInt(String.valueOf(counter), -1);
你应该做的是
sharedPreferences.getInt("int value", -1);
我认为您也混淆了首选项文件名。为了减少混淆,请在 class 范围内使用最终字符串。
private final String prefsFileName = "counterFile"; // file name for your shared preferences.
private final String counterKey = "counter"; // key to identify counter in your preferences.
要将计数器值保存到共享首选项,请创建一个方法。
private boolean saveCounter(int counter){
SharedPreferences prefs = getSharedPreferences(prefsFileName, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(counterKey, counter);
return editor.commit();
}
要从共享首选项中获取计数器值,请使用另一种方法。
private int getCounterValue() {
SharedPreferences prefs = getSharedPreferences(prefsFileName, Context.MODE_PRIVATE);
return prefs.getInt(counterKey, -1);
}
我想在我的应用程序内存中保存计数器并显示它。
我试过 sharedpreferences
但没用。
public class MainActivity extends AppCompatActivity {
SharedPreferences sharedPreferences;
int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
counter = counter + 1;
tvCounter.setText(String.valueOf(counter));
}
});
}
protected int Counter(View view) {
SharedPreferences settings = getSharedPreferences(String.valueOf(counter), 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("int value", counter);
editor.commit();
sharedPreferences.getInt(String.valueOf(counter), -1);
return 0;
}
}
计数器正在运行,但应用程序未保存任何内容。
SharedPreferences 保存键值对。
editor.putInt("int value", counter);
您正在键 "int value" 中保存计数器的值。
并试图通过错误的密钥检索它
sharedPreferences.getInt(String.valueOf(counter), -1);
你应该做的是
sharedPreferences.getInt("int value", -1);
我认为您也混淆了首选项文件名。为了减少混淆,请在 class 范围内使用最终字符串。
private final String prefsFileName = "counterFile"; // file name for your shared preferences.
private final String counterKey = "counter"; // key to identify counter in your preferences.
要将计数器值保存到共享首选项,请创建一个方法。
private boolean saveCounter(int counter){
SharedPreferences prefs = getSharedPreferences(prefsFileName, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(counterKey, counter);
return editor.commit();
}
要从共享首选项中获取计数器值,请使用另一种方法。
private int getCounterValue() {
SharedPreferences prefs = getSharedPreferences(prefsFileName, Context.MODE_PRIVATE);
return prefs.getInt(counterKey, -1);
}