从具有共享首选项的字符串创建arraylist

时间:2015-08-08 16:58:09

标签: java android string arraylist

我想知道如何获取一个在共享首选项中保存的简单字符串,然后保存这些字符串中的每一个并将它们显示到数组列表中。用户将每天保存一次字符串。我希望字符串显示为数组列表。这是我正在使用的代码。我有“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);


    }

2 个答案:

答案 0 :(得分:1)

我会说使用GSON

要将字符串列表转换为JSON以存储在首选项中,请使用以下命令:

List<String> list = ...

Type type = new TypeToken<List<String>>(){}.getType();
String json = gson.toJson(list, type);

并使用jsonSharedPreferences存储在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文件大小的库;