共享首选方法从Activity调用到Java类

时间:2016-06-11 07:27:29

标签: variables android-studio android-activity sharedpreferences mobile-application

所以我目前在SharedPreferences中遇到了LoginActivity.this问题。这是我的device.java类,LoginActivity是我想从中调用此方法的Activity。那么它会像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();
}

1 个答案:

答案 0 :(得分:1)

试试这个:

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类之外的上下文对象时,这是我通常的方法。希望它有所帮助!