2015-08-08 33 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