-1
Activity 1st..
Here this is my first activity to add data


preferences=PreferenceManager.getDefaultSharedPreferences(context);
                  preferences = getPreferences(MODE_PRIVATE);
                  editor = preferences.edit();
                 editor.putString("userid",et_username.getText().toString());//adduserid
                editor.putString("password",et_password.getText().toString());//add password
                  editor.commit();

Activity 2nd 这是我检索数据的第二个活动。

String userName=preferences.getString("userid","");
            String password=preferences.getString("password","");
            Log.d("user : second", ""+preferences.getString("userid",""));
            Log.d("password : second", ""+preferences.getString("password",""));

由于空值,此处不显示日志。

4

4 回答 4

0

我只存储一个整数值,你必须在其中超过一个值..

PreferenceConnector.writeInteger(home.this, PreferenceConnector.com_id, homeComp_id);

在要在其中使用的类下面preferenceConnector...

public class PreferenceConnector {

public static final String PREF_NAME = "Shared Preference";
public static final int MODE = Context.MODE_PRIVATE;

public static final String com_id = "com_id";

public static void writeBoolean(Context context, String key, boolean value) {
    getEditor(context).putBoolean(key, value).commit();
}

public static boolean readBoolean(Context context, String key, boolean defValue) {
    return getPreferences(context).getBoolean(key, defValue);
}

public static void writeInteger(Context context, String key, int value) {
    getEditor(context).putInt(key, value).commit();

}

public static int readInteger(Context context, String key, int defValue) {
    return getPreferences(context).getInt(key, defValue);
}

public static SharedPreferences getPreferences(Context context) {
    return context.getSharedPreferences(PREF_NAME, MODE);
}

public static Editor getEditor(Context context) {
    return getPreferences(context).edit();
}

}

然后你也将共享偏好值用于其他活动,如下所示......

 int Pref = PreferenceConnector.readInteger(mainpage.this, PreferenceConnector.com_id, 0);

希望上面的代码有用...

于 2014-01-01T04:45:18.973 回答
0

检查您的preferences对象(可能是null)。这可能是问题所在,因为其他 String 变量永远不会为空,可以是空字符串 ( "")。

在这个例子中,你是否错过了preferences第二个中的初始化?Activity

于 2013-03-05T09:47:14.033 回答
0
String userName=preferences.getString("userid");
String password=preferences.getString("password");
Log.d("user : second", ""+userName);
Log.d("password : second", ""+password);

你能不能试试这个方法。

于 2013-03-05T09:49:17.103 回答
0

在这两个活动中,只需使用它来获取 SharedPreferences 对象:

SharedPreferences prefs = getSharedPreferences("PREFS", Context.MODE_PRIVATE);

可能是您尝试从不同的活动访问不同的首选项文件。

或者只是使用

PreferenceManager.getDefaultSharedPreferences(this);
于 2013-03-05T09:54:36.473 回答