Android Studio SharedPreference 将登录信息保存到数据库
Android Studio SharedPreference Saving Login to Database
我想在用户首次将移动应用程序登录到我的设备时保存用户的登录详细信息table,并让他们在每次打开应用程序时绕过登录屏幕。
我想我已经完成了这一部分,它只是保存了我不理解的变量。我的问题是我应该如何以及从哪里开始保存用户的详细信息?
@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);
}
});
}
这里:
performLogin(username, password, sharedPreferences.getString("ip", ipAddress));
用户登录失败,因为 username
和 password
每次启动 Activity 时都将空值传递给 performLogin
。
以与获取 ip
相同的方式也可以从 SharedPreferences
获取 username
和 password
,例如:
if (sharedPreferences.contains("ip")) {
String strUsername=sharedPreferences.getString("username", "");
String strPassword=sharedPreferences.getString("password", "");
String strIpAddress=sharedPreferences.getString("ip", ipAddress);
performLogin(strUsername, strPassword,strIpAddress);
}
您想从共享首选项中获取用户名和密码,例如 ipAddress,然后调用 perfomLogin 方法。
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
if (sharedPreferences.contains("ip")) {
performLogin(sharedPreferences.getString("username", ""), sharedPreferences.getString("password", ""), sharedPreferences.getString("ip", ""));
}
我想在用户首次将移动应用程序登录到我的设备时保存用户的登录详细信息table,并让他们在每次打开应用程序时绕过登录屏幕。
我想我已经完成了这一部分,它只是保存了我不理解的变量。我的问题是我应该如何以及从哪里开始保存用户的详细信息?
@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);
}
});
}
这里:
performLogin(username, password, sharedPreferences.getString("ip", ipAddress));
用户登录失败,因为 username
和 password
每次启动 Activity 时都将空值传递给 performLogin
。
以与获取 ip
相同的方式也可以从 SharedPreferences
获取 username
和 password
,例如:
if (sharedPreferences.contains("ip")) {
String strUsername=sharedPreferences.getString("username", "");
String strPassword=sharedPreferences.getString("password", "");
String strIpAddress=sharedPreferences.getString("ip", ipAddress);
performLogin(strUsername, strPassword,strIpAddress);
}
您想从共享首选项中获取用户名和密码,例如 ipAddress,然后调用 perfomLogin 方法。
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
if (sharedPreferences.contains("ip")) {
performLogin(sharedPreferences.getString("username", ""), sharedPreferences.getString("password", ""), sharedPreferences.getString("ip", ""));
}