android静态方法用法

时间:2016-02-13 13:12:14

标签: android static

我正在开发一个android应用程序,其中我创建了一个“SessionManager.java”,其中只包含静态方法,仅在启动画面Activity中,我正在为“SessionManager”创建实例,因为它是 应用程序中的拳头活动,但有时,我得到空对象引用, 是否有必要在每个活动中实例化Class?

示例代码

public class SessionManager {
    // LogCat tag
    private static String TAG = SessionManager.class.getSimpleName();

 public SessionManager(Context context) {
        this._context = context;
        pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
        editor = pref.edit();
    }

    public static void setLogin(boolean isLoggedIn) {
        editor.putBoolean(KEY_IS_LOGGEDIN, isLoggedIn);
        editor.commit();
        Log.d(TAG, "User login session modified!");
    }

    public static void setMobile (String login_mobile) {
        editor.putString("mobile", login_mobile);
        editor.commit();
    }
    public static String getMobile() {
        return pref.getString("mobile", "00");
    }

}

有时在某些活动中,getMobile()方法返回null值,为什么?我可以在返回之前检查空值吗?请给我任何建议,我卡在这里。

1 个答案:

答案 0 :(得分:1)

如果您使用它来存储共享偏好中的值,那么就这样做

    public class AppSharedPreferences {

    private SharedPreferences appSharedPrefs;
    private SharedPreferences.Editor prefsEditor;
    private static AppSharedPreferences appSharedPrefrence;

    public AppSharedPreferences(Context context) {
        this.appSharedPrefs = context.getSharedPreferences("sharedpref", Context.MODE_PRIVATE);
        this.prefsEditor = appSharedPrefs.edit();
    }

    public AppSharedPreferences() {

    }

    public static AppSharedPreferences getsharedprefInstance(Context con) {
        if (appSharedPrefrence == null)
            appSharedPrefrence = new AppSharedPreferences(con);
        return appSharedPrefrence;
    }

    public SharedPreferences getAppSharedPrefs() {
        return appSharedPrefs;
    }

    public void setAppSharedPrefs(SharedPreferences appSharedPrefs) {
        this.appSharedPrefs = appSharedPrefs;
    }

    public SharedPreferences.Editor getPrefsEditor() {
        return prefsEditor;
    }

    public void Commit() {
        prefsEditor.commit();
    }

    public void clearallSharedPrefernce() {
        prefsEditor.clear();
        prefsEditor.commit();
    }
    public void setUserId(String userid)
    {
        this.prefsEditor=appSharedPrefs.edit();
        prefsEditor.putString("user_id", userid);
        prefsEditor.apply();
    }
    public String getUserId() {
        return appSharedPrefs.getString("user_id","");
    }
}

然后在课堂上使用它就像这样做

appSharedPreferences=AppSharedPreferences.getsharedprefInstance(ActivityLogin.this);

然后使用 appsharedPreferences.yourMethod();

调用您的方法