我想在用户首次将移动应用程序登录到我的设备表时保存用户的登录详细信息,并在每次打开应用程序时绕过登录屏幕。
我认为我已经得到了这个部分,只是保存了我不理解的变量。我的问题是我应该如何以及在何处开始保存用户的详细信息?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// declaring variebles
etUsername = (EditText)findViewById(R.id.etUsername);
etPassword= (EditText)findViewById(R.id.etPassword);
btnLogin = (Button)findViewById(R.id.btnLogin);
etIpAddress = (EditText) findViewById(R.id.etIpAddress);
final String username = etUsername.getText().toString();
final 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);
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString().trim();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("ip", ipAddress);
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
performLogin(username, password, ipAddress);
}
});
}
答案 0 :(得分:1)
下面:
performLogin(username, password, sharedPreferences.getString("ip", ipAddress));
用户登录失败,因为username
和password
每次启动活动时都会将空值传递给performLogin
。
与从ip
获取username
password
和SharedPreferences
的方式相同:
if (sharedPreferences.contains("ip")) {
String strUsername=sharedPreferences.getString("username", "");
String strPassword=sharedPreferences.getString("password", "");
String strIpAddress=sharedPreferences.getString("ip", ipAddress);
performLogin(strUsername, strPassword,strIpAddress);
}
答案 1 :(得分:1)
您希望从共享首选项中获取用户名和密码,如ipAddress,然后调用perfomLogin方法。
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
if (sharedPreferences.contains("ip")) {
performLogin(sharedPreferences.getString("username", ""), sharedPreferences.getString("password", ""), sharedPreferences.getString("ip", ""));
}