当我在对话框中单击“确定”时,我试图向页面添加动态textview。我的问题是,即使再次打开该应用程序,我也希望该textview可见。PS我可以添加多个textviews(一次1),并且所有应该在打开应用程序时再次可见。示例:创建新的播放列表,并且新的播放列表名称始终出现。谁能指导我该怎么做?
您可以将有关添加的TextView-s的信息存储在SharedPreferences中,当再次打开应用程序时,可以通过例如getStringSet(以获取添加的TextView的键名)和其他方法从SharedPreferences中获取此信息,并创建新的TextView-s并将其添加到活动中布局。
添加:
此任务最通用的方法是使用toString()方法将包含SharedPreferences中包含TextView-s数据的JSONArray作为字符串保存,当再次打开应用程序时,从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();
}
添加新的TextView时,应调用saveTextViewData方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句