2014-05-24 35 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动态添加到应用程序中。 这是一个简单的解决方案!

相关问题