我想知道如何获取一个在共享首选项中保存的简单字符串,然后保存这些字符串中的每一个并将它们显示到数组列表中。用户将每天保存一次字符串。我希望字符串显示为数组列表。这是我正在使用的代码。我有“physical_fragment.java”(保存数据)& “MainActivity.java”(加载数据)。
PHSYICAL_FRAGMENT.JAVA
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();
}
MAINACTIVITY.JAVA
resultPhysical= (TextView) findViewById(R.id.home);
SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
String result= sharedPreferences.getString("result",DEFAULT);
if (result.equals(DEFAULT))
{
Toast.makeText(this, "No data found", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(this, "Load Successful", Toast.LENGTH_LONG).show();
resultPhysical.setText(result);
}
答案 0 :(得分:1)
我会说使用GSON。
要将字符串列表转换为JSON以存储在首选项中,请使用以下命令:
List<String> list = ...
Type type = new TypeToken<List<String>>(){}.getType();
String json = gson.toJson(list, type);
并使用json
将SharedPreferences
存储在putString
。
要从SharedPreferences
读取,请使用以下内容:
String result = sharedPreferences.getString("result", DEFAULT);
Type type = new TypeToken<List<String>>(){}.getType();
List<String> list = gson.fromJson(result, type);
答案 1 :(得分:0)
你可以这样做:
SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
SharedPreferences.Editor editor =sharedPreferences.edit();
ArratList<String> dataList;
String data = "";
for(String itemData:dataList){
data = itemData + String.format(stringDate, date) + " - " + text_view5.getText().toString()+ "/";
editor.putString(data);
}
editor.commit();
现在从共享偏好中获取字符串并将其拆分。
String result= sharedPreferences.getString("result",DEFAULT);
String[] splited = str.split("/");
这有助于支持可以影响apk文件大小的库;