Android 如何显示以前的EditText用户输入以及最近的EditText用户输入?
我有一个SharedReferences,它保存一个活动的EditText输入,并在另一个活动中显示字符串值 当我在EditText字段中输入并按下(我创建的按钮)“保存”(将EditText提交给编辑器)时,文件被成功存储和显示 但是,我希望这样,每次用户在EditText中添加另一个条目时,它都会显示在先前添加的EditText输入下面。像一张单子。我知道两人都在读取SharedReferences文件。我该怎么做呢 CustomStoreEditActivity-仅存储用户输入(EditText条目): CustomStoreActivity—检索数据并显示:Android 如何显示以前的EditText用户输入以及最近的EditText用户输入?,android,sharedpreferences,Android,Sharedpreferences,我有一个SharedReferences,它保存一个活动的EditText输入,并在另一个活动中显示字符串值 当我在EditText字段中输入并按下(我创建的按钮)“保存”(将EditText提交给编辑器)时,文件被成功存储和显示 但是,我希望这样,每次用户在EditText中添加另一个条目时,它都会显示在先前添加的EditText输入下面。像一张单子。我知道两人都在读取SharedReferences文件。我该怎么做呢 CustomStoreEditActivity-仅存储用户输入(EditT
public void onResume() {
SharedPreferences prefs = getSharedPreferences("customtime", 0);
String shopName = prefs.getString("shopName", "Empty");
String shopTimeM1 = prefs.getString("Monday1", " ");
String shopTimeM2 = prefs.getString("Monday2", " ");
String shopTimeT1 = prefs.getString("Monday1", " ");
String shopTimeT2 = prefs.getString("Monday2", " ");
String shopTimeW1 = prefs.getString("Monday1", " ");
String shopTimeW2 = prefs.getString("Monday2", " ");
String shopTimeTH1 = prefs.getString("Monday1", " ");
String shopTimeTH2 = prefs.getString("Monday2", " ");
String shopTimeF1 = prefs.getString("Monday1", " ");
String shopTimeF2 = prefs.getString("Monday2", " ");
String shopTimeS1 = prefs.getString("Monday1", " ");
String shopTimeS2 = prefs.getString("Monday2", " ");
String shopTimeSU1 = prefs.getString("Monday1", " ");
String shopTimeSU2 = prefs.getString("Monday2", " ");
String shopComments = prefs.getString("comments", "");
TextView displayPrefs = (TextView) findViewById(R.id.displayPrefs);
displayPrefs.setText(
"------------------------------------------------------------" +
"\n\nSHOP NAME: " + shopName +
"\n\nTIMINGS: " + "\n\n Monday: " + shopTimeM1 + " - " + shopTimeM2 +
"\n Tuesday: " + shopTimeT1 + " - " + shopTimeT2 + "\n Wednesday: "
+ shopTimeW1 + " - " + shopTimeW2 + "\n Thursday: " + shopTimeTH1
+ " - " + shopTimeTH2 + "\n Friday: " + shopTimeF1 + " - " + shopTimeF2 +
"\n Saturday: " + shopTimeS1 + " - " + shopTimeS2 + "\n Sunday: " +
shopTimeSU1 + " - " + shopTimeSU2 +
"\n\nCOMMENTS: " + shopComments +
"\n\n------------------------------------------------------------");
super.onResume();
}
感谢您抽出宝贵的时间。我觉得您好像在试图建立一个列表。请原谅我最初含糊不清的回答,但我保证它最终会集中在一点上 我对总体框架的建议是: 您有一个
活动
(可能是您的CustomStoreActivity
),它显示保存的存储
对象列表<代码>存储需要实现可打包
或可序列化
(最好是前者)
在这个活动中
有一个新店
按钮(如果您遵循Android设计惯例,这可能是操作栏中的“+”按钮)
按下newstore
按钮,您的CustomStoreActivity
调用startActivityForResult(CustomStoreEditActivity.class)
您的CustomStoreActivity
按照您上次询问的答案执行onActivityResult
。在这里,您将获得一个结果代码和一个Intent
,其中包含Extras
(由Intent.getExtras()
检索)
您的CustomStoreEditActivity
接受用户输入,如上所述,它不将其写入SharedReferences
而是使用该信息创建一个新的Store
对象,该对象包含所有信息,并使用setResult(结果\确定,意图)
其中intent
是添加了存储
额外(作为包裹
)的intent
这意味着当CustomStoreEditActivity
调用finish()
时(您将执行此操作,而不是使用意图重新启动CustomStoreActivity
,因为CustomStoreActivity
已经在后面)您将获得对onActivityResult
的调用,并可以从刚才传递回来的意图中从附加中拉出存储
对象
现在说到重点:
您可以在CustomStoreActivity
中使用ListView
,也可以使用扩展ArrayAdapter
的StoreAdapter
,并为Store
列表中的每个项目添加一个包含该Store
名称的视图。然后,您只需将新的存储
对象添加到传递到存储适配器
的数组中,并在onActivityResult
中调用适配器.notifyDataSetChanged()
,就可以了
如果最终需要在应用程序会话之间持久保存此数据,则应在CustomStoreActivity
的onPause
方法中将Store
对象写入SharedReferences
(它是列表的保管者),而不是从各个方向触摸共享的首选项。如果需要,您可以在onCreate
中再次读取列表
我知道通过/摘要解析需要很多,但它是Android中Activity
结构之间传递数据和持久化数据的标准机制
如果您对实施有任何疑问,请告诉我,我会看看我能做些什么!:) 我觉得你好像在试图建立一个列表。请原谅我最初含糊不清的回答,但我保证它最终会集中在一点上
我对总体框架的建议是:
您有一个活动
(可能是您的CustomStoreActivity
),它显示保存的存储
对象列表<代码>存储
需要实现可打包
或可序列化
(最好是前者)
在这个活动中
有一个新店
按钮(如果您遵循Android设计惯例,这可能是操作栏中的“+”按钮)
按下newstore
按钮,您的CustomStoreActivity
调用startActivityForResult(CustomStoreEditActivity.class)
您的CustomStoreActivity
按照您上次询问的答案执行onActivityResult
。在这里,您将获得一个结果代码和一个Intent
,其中包含Extras
(由Intent.getExtras()
检索)
您的CustomStoreEditActivity
接受用户输入,如上所述,它不将其写入SharedReferences
而是使用该信息创建一个新的Store
对象,该对象包含所有信息,并使用setResult(结果\确定,意图)
其中intent
是添加了存储
额外(作为包裹
)的intent
这意味着当CustomStoreEditActivity
调用finish()
时(您将执行此操作,而不是使用意图重新启动CustomStoreActivity
,因为CustomStoreActivity
已经在后面)您将获得对onActivityResult
的调用,并可以将存储
对象从中拉出
public void onResume() {
SharedPreferences prefs = getSharedPreferences("customtime", 0);
String shopName = prefs.getString("shopName", "Empty");
String shopTimeM1 = prefs.getString("Monday1", " ");
String shopTimeM2 = prefs.getString("Monday2", " ");
String shopTimeT1 = prefs.getString("Monday1", " ");
String shopTimeT2 = prefs.getString("Monday2", " ");
String shopTimeW1 = prefs.getString("Monday1", " ");
String shopTimeW2 = prefs.getString("Monday2", " ");
String shopTimeTH1 = prefs.getString("Monday1", " ");
String shopTimeTH2 = prefs.getString("Monday2", " ");
String shopTimeF1 = prefs.getString("Monday1", " ");
String shopTimeF2 = prefs.getString("Monday2", " ");
String shopTimeS1 = prefs.getString("Monday1", " ");
String shopTimeS2 = prefs.getString("Monday2", " ");
String shopTimeSU1 = prefs.getString("Monday1", " ");
String shopTimeSU2 = prefs.getString("Monday2", " ");
String shopComments = prefs.getString("comments", "");
TextView displayPrefs = (TextView) findViewById(R.id.displayPrefs);
displayPrefs.setText(
"------------------------------------------------------------" +
"\n\nSHOP NAME: " + shopName +
"\n\nTIMINGS: " + "\n\n Monday: " + shopTimeM1 + " - " + shopTimeM2 +
"\n Tuesday: " + shopTimeT1 + " - " + shopTimeT2 + "\n Wednesday: "
+ shopTimeW1 + " - " + shopTimeW2 + "\n Thursday: " + shopTimeTH1
+ " - " + shopTimeTH2 + "\n Friday: " + shopTimeF1 + " - " + shopTimeF2 +
"\n Saturday: " + shopTimeS1 + " - " + shopTimeS2 + "\n Sunday: " +
shopTimeSU1 + " - " + shopTimeSU2 +
"\n\nCOMMENTS: " + shopComments +
"\n\n------------------------------------------------------------");
super.onResume();
}