我无法保存整数
Posted
技术标签:
【中文标题】我无法保存整数【英文标题】:I can't save integer 【发布时间】:2019-10-14 19:39:15 【问题描述】:我想将计数器保存在我的应用程序内存中并显示它。
我试过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;
计数器正在工作,但应用程序没有保存任何内容。
【问题讨论】:
你在哪里调用你的计数器函数? 【参考方案1】:SharedPreferences 保存键值对。
editor.putInt("int value", counter);
您正在将计数器的值保存在键“int value”中。
并试图用错误的键检索它
sharedPreferences.getInt(String.valueOf(counter), -1);
你应该做的是
sharedPreferences.getInt("int value", -1);
我认为您还混淆了首选项文件名。为了避免混淆,请在类范围内使用 final 字符串。
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 但你在哪里初始化它?以上是关于我无法保存整数的主要内容,如果未能解决你的问题,请参考以下文章