从活动到 Java 类的共享首选项方法调用



所以我目前在SharedPreferences内部的上下文中遇到了问题,它说LoginActivity.this。这是我的设备.java类,LoginActivity 是我想从中调用此方法的活动。那么它会像Device.This或类似的东西一样吗?

方法:

public void validateLogin(String username, String password, String ipAddress) {
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
    if (sharedPreferences.contains("ip") && sharedPreferences.contains("username") && sharedPreferences.contains("password")) {
        String strUsername = sharedPreferences.getString("username", username);
        String strPassword = sharedPreferences.getString("password", password);
        String strIpAddress = sharedPreferences.getString("ip", ipAddress);
        //performLogin(strUsername, strPassword, strIpAddress);
    }
}
public void saveSP(String username, String password, String ipAddress) {
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
    sharedPreferences.edit()
            .putString("ip", ipAddress)
            .putString("username", username)
            .putString("password", password)
            .commit();
}

试试这个:

public class MyActivity extends Activity{
    private static MyActivity activity;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        activity = this;
        //...
    }
    public static MyActivity getActivity(){
        return activity;
    }
}

然后,当您需要上下文对象时:

PreferenceManager.getDefaultSharedPreferences(MyActivity.getActivity());

当我需要在 Activity 类之外使用上下文对象时,这是我的常用方法。 希望对您有所帮助!

最新更新