2015-08-08 57 views
-1

我想知道如何获取正在保存在共享首选项中的简单字符串,然后保存每个字符串并将其显示到数组列表中。用户将每天保存一次字符串。我希望字符串显示为数组列表。这是我正在使用的代码。我有“physical_fragment.java”(SAVES THE DATA)&“MainActivity.java”(LOADS THE DATA)。从具有共享首选项的字符串创建数组列表

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); 


    } 
+1

什么是你所面临的问题的规模呢?我只能看到你想要做什么的描述,而不是你被卡住的地方。 – HyperZ

+0

我还没有试图把它变成一个数组列表,因为我不知道如何。我甚至不知道从哪里开始。我是新来的编码:( –

+0

我不清楚你想要做什么,你可以编辑你的帖子来添加一个(或更多)这样的字符串的例子,以及如何数组列表填充后应该是? – HyperZ

回答

1

我想说对于使用GSON

要转换存储在首选项字符串JSON列表使用此:

List<String> list = ... 

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

,并使用putString存储jsonSharedPreferences

SharedPreferences读你使用这样的:

String result = sharedPreferences.getString("result", DEFAULT); 

Type type = new TypeToken<List<String>>(){}.getType(); 
List<String> list = gson.fromJson(result, type); 
+0

我在“...”上遇到错误我把它放在那里? –

+0

字符串的列表,当然:-)你有一个用户添加的字符串列表,对吗? – pelotasplus

+0

等待。我应该把所有这些放在我的主要活动中吗? - 对于编码 –

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文件

+0

我在“data = data + ...”行遇到错误。 –

+0

我刚写在文本文件上。你可以编辑这个。我在code.check上做了一些改动。 – Rama

+0

data = itemData + String.format(stringDate,date)+“ - ”+ text_view5.getText()。toString( )+“/”; – Rama