我在地址页面中有7个字段。 我想使用SharedPreference将所有字段值存储在单个键中。我知道如何存储单个值..我不知道如何存储所有值。
我的代码在这里:
SharedPreferences shared = getActivity().getSharedPreferences("tagAddress", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString(text, line1.toString());
editor.commit();
请帮帮我
提前致谢!!
答案 0 :(得分:1)
由于line1
是EditText
,您应该使用line1.getText().toString()
并在单个条目中存储多个值,您可以这样做:
editor.putString(text, line1.getText().toString() + "|||" + line2.getText().toString() + "|||" + ...);
然后得到:
String[] values = shared.getString(text,"").split("\\|\\|\\|");
答案 1 :(得分:1)
你必须尝试在arraylist中的ArrayList存储中添加数据然后发送数据 就像你可以将数据访问到不同的类一样..
ArrayList<string> listdata = new ArrayList<String>();
listdata.add(str1);
listdata.add(str2);
.....如此
然后存储在像这样的共享prefrence
中SharedPreferences shared = getActivity().getSharedPreferences("tagAddress",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString("listdata", listdata.toString());
editor.commit();
并访问另一个具有相同键“listdata”的类
import android.preference.PreferenceManager;
SharedPreferences prefs = referenceManager.getDefaultSharedPreferences(this);
prefs.getBoolean("listdata", true);
答案 2 :(得分:0)
使用sqlite数据库代替。当然,它更复杂。但它值得任何努力。相信它。另外,SharedPreferences需要很多内存空间。所以这个课程有点用处 变量,不是数组!
我发现了一个很好的教程。有用 http://hmkcode.com/android-simple-sqlite-database-tutorial/