我的项目需要帮助。我需要能够按下使用共享首选项的保存按钮,每次按下该按钮,我都需要它来获取保存的数据并将其像列表一样堆叠在一起。关键值是"结果"。因此,save按钮获取字符串和整数,并将其放在我的Main活动XML布局上。但是,如果我再次使用不同的整数或字符串按save,它将替换原来保存的原始字符串和整数。我希望它能够保留原始字符串和整数,如果我第一次保存它并在原始下面创建一个新的字符串和整数,如果我再做第二次,依此类推。请帮忙!
这是我的保存活动:
public void save(View view){
Date date = new Date();
String stringDate = DateFormat.getDateInstance().format(date);
SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
SharedPreferences.Editor editor =sharedPreferences.edit();
editor.putString("result",String.format(stringDate, date) + " - " + text_view5.getText().toString());
editor.commit();
Toast.makeText(this, "Saved successfully!", Toast.LENGTH_LONG).show();
}
这是我的加载活动:
resultPhysical = (TextView) findViewById(R.id.home);
SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
String physicalresult = sharedPreferences.getString("result", DEFAULT);
String physicalresult2= sharedPreferences.getString("result2", DEFAULT);
if (physicalresult.equals(DEFAULT)){
Toast.makeText(this,"No Data Found", Toast.LENGTH_LONG).show();
}
else{
resultPhysical.setText(physicalresult);
}
}
答案 0 :(得分:0)
您可以轻松保存它们,只需创建一个额外的变量,该变量引用已保存结果的大小,以便您可以循环它们。要开始保存,请获取大小,然后使用索引保存
int size = sharedPreferences.getInt("size", 0); // if it doesn't exist, get 0
// then save the result like
editor.putString("result" + String.valueOf(size), String.format(stringDate, date) + " - " + text_view5.getText().toString()); // just add index to result
// then increase the size
editor.putInt("size", ++size);
editor.commit();
加载结果
StringBuilder results = new StringBuilder();
int size = int size = sharedPreferences.getInt("size", 0); // get the size to start looping
if(size == 0){ // if results are empty
// show toast there is no saved result
} else { //start looping
for(int i = 0; i < size; i++){
String temp = sharedPreferences.getString("result" + String.valueOf(i), DEFAULT);
results.append(temp + " ");
}
resultPhysical.setText(results.toString());
}