gpt4 book ai didi

android - 如何显示以前的 EditText 用户输入以及最近的 EditText 用户输入?

转载 作者:行者123 更新时间:2023-11-30 04:14:37 27 4
gpt4 key购买 nike

我有一个 SharedPreferences,它保存来自一个 Activity 的 EditText 输入并在另一个 Activity 中显示字符串值。

当我在 EditText 字段中输入内容并按下(我创建的按钮)“保存”(将 EditText 提交给编辑器)时,文件将成功存储并显示。

但是,我想要这样,每次用户在 EditText 中添加另一个条目时,它都会显示在先前添加的 EditText 输入下方。就像一个 list 。我知道两者都在从 SharedPreferences 文件中读取。我该怎么做呢?

CustomStoreEditActivity - 仅存储用户输入(EditText 条目):

   final Button saveButton = (Button) findViewById(R.id.saveButton);
saveButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View arg0) {
if (saveButton.isClickable()) {
SharedPreferences prefs = getSharedPreferences(
"customtime", 0);
// prefs.registerOnSharedPreferenceChangeListener(this);
final SharedPreferences.Editor edit = prefs.edit();
EditText shopName = (EditText) findViewById(R.id.shopName);
EditText open1 = (EditText) findViewById(R.id.open1);
EditText close1 = (EditText) findViewById(R.id.close1);
EditText open2 = (EditText) findViewById(R.id.open2);
EditText close2 = (EditText) findViewById(R.id.close2);
EditText open3 = (EditText) findViewById(R.id.open3);
EditText close3 = (EditText) findViewById(R.id.close3);
EditText open4 = (EditText) findViewById(R.id.open4);
EditText close4 = (EditText) findViewById(R.id.close4);
EditText open5 = (EditText) findViewById(R.id.open5);
EditText close5 = (EditText) findViewById(R.id.close5);
EditText open6 = (EditText) findViewById(R.id.open6);
EditText close6 = (EditText) findViewById(R.id.close6);
EditText open7 = (EditText) findViewById(R.id.open7);
EditText close7 = (EditText) findViewById(R.id.close7);
EditText comments = (EditText) findViewById(R.id.comments);
edit.putString("shopName", shopName.getText().toString());
edit.putString("Monday1", open1.getText().toString());
edit.putString("Monday2", close1.getText().toString());
edit.putString("Tuesday1", open2.getText().toString());
edit.putString("Tuesday2", close2.getText().toString());
edit.putString("Wednesday1", open3.getText().toString());
edit.putString("Wednesday2", close3.getText().toString());
edit.putString("Thursday1", open4.getText().toString());
edit.putString("Thursday2", close4.getText().toString());
edit.putString("Friday1", open5.getText().toString());
edit.putString("Friday2", close5.getText().toString());
edit.putString("Saturday1", open6.getText().toString());
edit.putString("Saturday2", close6.getText().toString());
edit.putString("Sunday1", open7.getText().toString());
edit.putString("Sunday2", close7.getText().toString());
edit.putString("comments", comments.getText().toString());
edit.commit();
Intent myIntent = new Intent(getBaseContext(),
CustomStoreActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(myIntent);

Toast.makeText(getBaseContext(), "Opening Hours Saved!",
Toast.LENGTH_SHORT).show();

}

}
});

}

CustomStoreActivity - 我在其中检索数据并显示:

    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();
}

感谢您抽出宝贵的时间。

最佳答案

在我看来,您正在尝试构建一个列表。请原谅我最初含糊不清的回答,但我保证它最终会集中在一点上。

我建议的整体框架是这样的:

你有一个 Activity (大概是你的 CustomStoreActivity )显示保存的列表 Store对象。 Store需要实现ParcelableSerializable (最好是前者)。

在此Activity有一个New Store按钮(如果您遵循 Android 设计惯例,这可能是操作栏中的“+”按钮)。

按下 New Store按钮,你的CustomStoreActivity电话 startActivityForResult(CustomStoreEditActivity.class) .

你的 CustomStoreActivity工具 onActivityResult根据上次的回答question你问。在这里,您将获得一个结果代码和一个 Intent其中包含 Extras (由 intent.getExtras() 检索)。

你的 CustomStoreEditActivity如上所述接受用户输入,而不是将其写入 SharedPreferences它使用该信息创建一个新的 Store包含所有信息并使用 setResult(RESULT_OK,intent) 的对象其中 intentIntent您已将 Store 添加到其中额外的(作为 Parcelable )。

这意味着当CustomStoreEditActivity电话 finish() (你会这样做而不是使用 Intent 重新启动你的 CustomStoreActivity 因为 CustomStoreActivity 已经在它后面)你会接到 onActivityResult 的电话并且可以拉 Store Extras 中的对象来自 Intent你刚刚回来了。

现在进入正题:

您可以使用 ListView在你的CustomStoreActivity ,并使用 StoreAdapter延伸 ArrayAdapter<Store> ,以及 Store 列表中的每一项s 向包含 Store 的列表添加一个 View 的名字。然后您只需添加新的 Store反对你传递给你的数组 StoreAdapter , 并调用 adapter.notifyDataSetChanged()onActivityResult这应该会处理好它。

如果最终您需要在应用程序 session 之间保留此数据,您应该处理编写 Store反对 SharedPreferencesonPause CustomStoreActivity的方法| (它是列表的管理员)而不是从各个方向触及您的共享偏好。然后您可以在 onCreate 中再次阅读列表如果你需要的话。

我知道解析/摘要有很多内容,但这是在 Activity 之间传递数据的非常标准的机制。在 Android 中构建并用于持久化数据。

如果您对实现有任何疑问,请告诉我,我会尽我所能! :)

关于android - 如何显示以前的 EditText 用户输入以及最近的 EditText 用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com