移动应用程序共享首选项保存和调用用户登录

时间:2016-06-08 08:18:00

标签: android android-studio save sharedpreferences mobile-application

目前我的应用程序正在" Device"中搜索现有设备。用于启用登录访问的表。但是,我希望每次登录时都要注册一个新设备,并在每次运行应用程序时绕过登录页面。目前,该应用程序显示打开时凭据无效,因为用户名和密码未正确保存。我该如何解决这个问题?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    // declaring variables
    etUsername = (EditText)findViewById(R.id.etUsername);
    etPassword= (EditText)findViewById(R.id.etPassword);
    btnLogin = (Button)findViewById(R.id.btnLogin);
    etIpAddress = (EditText) findViewById(R.id.etIpAddress);
    String username = etUsername.getText().toString();
    String password = etPassword.getText().toString();
    String ipAddress = etIpAddress.getText().toString();

    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
    if (sharedPreferences.contains("ip")) {
        performLogin(username, password, sharedPreferences.getString("ip", ipAddress));
    }

    // setting up things for login button
    btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String ipAddress = etIpAddress.getText().toString();

            SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);

            sharedPreferences.edit()
                    .putString("ip", ipAddress)
                    .apply();

            String username = etUsername.getText().toString().trim();
            String password = etPassword.getText().toString().trim();

            performLogin(username, password, ipAddress);
        }
    });
}

private void performLogin(String username, String password, String ipAddress) {
    try {
        Device.login(username, password, ipAddress, this);
    } catch (JSONException e) {
        onLoginFailure(e);
    }
}

1 个答案:

答案 0 :(得分:2)

为了保存登录凭据,我们始终遵循以下代码: - public static final String MyPREFERENCES =" MyPrefs" ;

   public static final String Name = "nameKey";
   public static final String Phone = "phoneKey";
   public static final String Email = "ip";
   SharedPreferences.Editor editor = sharedpreferences.edit();

            editor.putString(Name, n);
            editor.putString(Phone, ph);
            editor.putString(ip, e);
            editor.commit();

我认为你必须在你的代码中使用那个东西而不是apply()meth