Java 强制停止活动时SharedReference丢失
我正在开发一个步骤计数器应用程序,我想在SharedReference中保存步骤数据,但当我返回主页并重新启动应用程序时,数据就消失了 下面是我代码的一部分 我怎样才能解决这个问题Java 强制停止活动时SharedReference丢失,java,android,sharedpreferences,Java,Android,Sharedpreferences,我正在开发一个步骤计数器应用程序,我想在SharedReference中保存步骤数据,但当我返回主页并重新启动应用程序时,数据就消失了 下面是我代码的一部分 我怎样才能解决这个问题 public class MainActivity extends AppCompatActivity { String finalstep=""; String valuestring1= null; private static final String step = "STEP";
public class MainActivity extends AppCompatActivity {
String finalstep="";
String valuestring1= null;
private static final String step = "STEP";
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf =new SimpleDateFormat("dd");
String strDate = sdf.format(c.getTime());
int date = Integer.parseInt(strDate);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void readData(){
settings = getSharedPreferences(step,MODE_WORLD_READABLE);
textSteps.setText(settings.getString(valuestring1, ""));
}
public void resetSteps(View v) {
String strDate1 = sdf.format(c.getTime());
int date1 = Integer.parseInt(strDate1);
if(date1==date) {
readData();
textSteps.setText(valuestring1);
}
else{
date=date1;
numSteps = 0;
textSteps.setText(String.valueOf(numSteps));
}
}
public void saveData(){
String s = String.valueOf(finalstep);
settings = getSharedPreferences(step,0);
settings.edit()
.putString(s, valuestring1).commit();
}
public void pressed (View v) {
if(v.getId()==R.id.exit) {
saveData();
}
}
}
可能您正在调用clear()SharedReferences方法,或者正在onPause()、onStop()或onDestroy()方法中将SharedReferences对象设置为null。这样做会丢失以前存储在您创建的SharedReferences对象中的数据。您正在使用不同的键读取和写入共享首选项数据: 这里的
valuestring1
是关键
此处,s
是键,valuestring1
是值
您应该使用相同的键进行写入和读取。您错过了
readData()
在onCreate()
metod中,在onCreate()
方法的末尾遗漏了}
你不想改善这个问题,是吗D
textSteps.setText(settings.getString(valuestring1, ""));
settings.edit()
.putString(s, valuestring1).commit();