2

我正在尝试在用户登录后对 android 应用程序使用共享首选项。在我的应用程序中,用户输入他的登录信息,然后将其发送到 api,如果他们登录,则返回用户名和 id。

我用这个保存共享首选项数据:

//set preferences
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(c);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("userName",userName);
editor.putString("userID",userID);
editor.commit();

然后我尝试使用以下方法访问数据:

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
String restoredText = prefs.getString("userName", null);
String restoredText2 = prefs.getString("userID", null);

Toast.makeText(this,  restoredText, Toast.LENGTH_SHORT).show();
Toast.makeText(this,  restoredText2, Toast.LENGTH_SHORT).show();
4

2 回答 2

2

使用

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(c);

在设置和获取方法中。

getPreferences是私有的活动。当您使用getPreferences方法时,它会创建一个带有活动文件名的首选项。

于 2013-06-23T02:53:11.827 回答
0

*你可以使用我制作的这个类 - 它使用简单 *

import java.io.File;
import java.io.FileOutputStream;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Environment;
import android.preference.PreferenceManager;
import android.util.Log;

public class CommonUtil {

    public static String getStringPreference(Context context, String key) {
        return PreferenceManager.getDefaultSharedPreferences(context).getString(key, null);
    }


    public static boolean setStringPreference(Context context, String key, String value) {
        return PreferenceManager.getDefaultSharedPreferences(context).edit().putString(key, value).commit();
    }
}

代码中的用法

CommonUtil.setStringPreference(MyClass.this, "UID", userID);
CommonUtil.setStringPreference(MyClass.this, "PASS", pinNo);
于 2013-06-23T09:19:30.277 回答