我对Android应用程序有疑问。
1.第一个活动包括获取用户名,然后进入下一个活动。
3.现在这是我感到困惑的事情,另一个要求是,当用户退出应用程序并输入此名称时,他应该取回他篮子里的物品。
所以,我的方法是,对于第1点和第2点,我需要一个SQLite数据库来保存项目,显示和添加到篮子。 但我不确定如何实现第三点。 我已经读过有关共享偏好的内容,我对此有所了解。
答案 0 :(得分:1)
我创造了一个更简单的"如果你愿意,可以使用SharedPreference的版本。 Github - > KeySaver
你用这种方式:
$(document).on('click touchstart','.header-container .info-trigger', function(e) {
保存/存储数据。可以在使用String,int和boolean
的Activity或Fragment(任何上下文)中使用它你可以得到这样的值:
KeySaver.saveShare(this, "your-key", "your-value");
你需要" your_key"获取该值的特定键。
答案 1 :(得分:1)
我不建议将项目列表保存到共享首选项中。
您想将心愿单保存到sqlite表。他们将物品添加到心愿单。
您可能需要有2个表才能有效地完成此任务。
当他们登录时,你可以说。 SELECT * FROM WISHLIST where username =?内联项目在ITEMS.wishlist#= WISHLIST.id UNION选择ID,名称,项目描述,项目值等;
这样,当用户登录时,您只需调用传入输入用户名的方法,然后撤回他们的心愿单。因此,您保存他们的心愿单并在他们重新登录时检索。
答案 2 :(得分:0)
你想保留你篮子里的物品。一种方法是在SQL中创建一个新表。其他方法创建一个json文件,用于保存数据,保存和读取数据。 SharedPreferences也是这样的。
答案 3 :(得分:0)
SharedPreference是保存用户名的合理位置。
虽然您需要记住,如果用户清除应用程序的内容,您将丢失此数据(以及SQLite数据库)。
因此,如果要保存用户名,可以使用如下的简单类:
public class AppPreferences {
public static final String KEY_PREFS_USER_NAME = "user_name";
private static final String APP_SHARED_PREFS = AppPreferences.class
.getSimpleName();
private SharedPreferences _sharedPrefs;
private Editor _prefsEditor;
public AppPreferences(Context context) {
this._sharedPrefs = context.getSharedPreferences(APP_SHARED_PREFS,
Activity.MODE_PRIVATE);
this._prefsEditor = _sharedPrefs.edit();
}
public String getStringKey(String key) {
return _sharedPrefs.getString(key);
}
public void saveStringKey(String key, String value) {
_prefsEditor.putString(key, value);
_prefsEditor.commit();
}
}
根据您的活动,您可以这样做:
AppPreferences prefs = new AppPreferences(this);
//get the user name
String user = prefs.getStringKey(AppPreferences.KEY_PREFS_USER_NAME );
//to save
prefs.saveStringKey(AppPreferences.KEY_PREFS_USER_NAME ,"the user name");