2014-05-24 34 views
-1

我想在對話框中單擊確定時向頁面添加動態文本視圖。我的問題是,即使再次打開應用程序,我希望textview仍然可見。 P.S.我可以添加多個文字瀏覽(每次1個),並且在再次打開應用程序時,所有內容都應該可見。示例:創建一個新的播放列表,新的播放列表名稱始終顯示。任何人都可以指導我如何做到這一點?動態文本視圖在再次打開應用程序時可見

回答

1

您可以在SharedPreferences中存儲有關添加的TextView-s的信息,以及何時再次打開應用程序時,通過getStringSet(例如獲取添加的TextView的鍵名)從SharedPreferences獲取此信息並通過其他方法創建新的TextView-s並添加他們到一個活動佈局。

此外:

這一任務的最普遍的做法是,以節省JSONArray其中包含的TextView-S在SharedPreferences作爲一個字符串數據使用toString()方法,當應用程序被再次打開,從SharedPreferences爲讀JSONArray字符串並填充新創建的TextView-s的數據。

例:

private JSONArray data;  

...  

SharedPreferences pref = getSharedPreferences("application", 0); 
data = new JSONArray(pref.getString("text_views_data", null)); 

List<TextView> tvList = new ArrayList<TextView>(); 
for (int i = 0; i < data.length(); i++){ 
    JSONObject ob = data.get(i);   

    TextView tv = new TextView(this); 
    tv.setText(ob.getString("text")); 
    tvList.add(tv); 
} 

... 

private saveTextViewData(TextView tv){ 
    JSONObject ob = new JSONObject(); 
    ob.put("text", tv.getText()); 
    data.put(ob); 

    SharedPreferences preferences = getSharedPreferences("application", 0); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putString("text_views_data", data.toString()); 
    editor.commit(); 
} 

,你應該調用saveTextViewData方法,當你添加新的TextView。

+0

你的回答很好。非常感謝:) – Siju

+0

不客氣! – DenisMath

0

您可以將每個TextView作爲一個對象存儲在一個對象數組中。然後,您可以將該數組保存在SharedPreferences中,然後當您打開該應用程序時,從SharedPreferences獲取數組,然後將TextViews動態添加到應用程序中。 這是一個簡單的解決方案!

相關問題