在Android中使用共享首选项

时间:2015-09-28 18:12:32

标签: android sqlite

我对Android应用程序有疑问。

1.第一个活动包括获取用户名,然后进入下一个活动。

  1. 在新活动中,我必须显示硬编码的项目列表,用户可以单击列表并获取具有项目详细信息的新活动。也可以将它添加到他的愿望清单或者像篮子一样,也可以从那里删除它。
  2. 3.现在这是我感到困惑的事情,另一个要求是,当用户退出应用程序并输入此名称时,他应该取回他篮子里的物品。

    所以,我的方法是,对于第1点和第2点,我需要一个SQLite数据库来保存项目,显示和添加到篮子。 但我不确定如何实现第三点。 我已经读过有关共享偏好的内容,我对此有所了解。

4 个答案:

答案 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个表才能有效地完成此任务。

  1. 表WISHLIST(购物篮)(id,username);
  2. 表项目(id,wishlist#,项目名称,项目描述,项目值等); wishlist#将成为对WISHLIST表的id的引用。
  3. 当他们登录时,你可以说。 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");