Android 工作室,将复选框值从选中设置为未选中,在另一个 activity
Android studio, set checkbox value from checked to unchecked, in the other activity
我在登录 activity 中有一个 "save" 复选框。如果用户选中它,下次应用程序启动时,跳过登录 activity。虽然,如果用户想要注销,登录 activity 中的复选框将设置为未选中。这个问题,我解决不了。
登录Activity保存部分:
saveLogin = loginPreferences.getBoolean("saveLogin", false);
if (saveLogin == true) {
etEmail.setText(loginPreferences.getString("email", ""));
etPassword.setText(loginPreferences.getString("password", ""));
saveLoginCheckBox.setChecked(true);
// editor.putBoolean("checked", true);
/* editor.putString("email", "etEmail"); // Storing string
editor.putString("password", "etPassword"); // Storing string*/
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(etEmail.getWindowToken(), 0);
String email = etEmail.getText().toString();
String password = etPassword.getText().toString();
if (saveLoginCheckBox.isChecked()) {
loginPrefsEditor.putBoolean("saveLogin", true);
loginPrefsEditor.putString("email", email);
loginPrefsEditor.putString("password", password);
loginPrefsEditor.commit();
} else {
loginPrefsEditor.clear();
loginPrefsEditor.commit();
}
Backendless.UserService.login(email, password, new AsyncCallback<BackendlessUser>() {
@Override
public void handleResponse(BackendlessUser response) {
Toast.makeText(getApplicationContext(),"Sikeres bejelentlezés",Toast.LENGTH_SHORT).show();
Intent loginIntent = new Intent(LoginActivity.this, CategoryActivity.class);
LoginActivity.this.startActivity(loginIntent);
}
@Override
public void handleFault(BackendlessFault fault) {
Toast.makeText(getApplicationContext(),"Sikertelen bejelentlezés",Toast.LENGTH_SHORT).show();
}
});
}
而用户activity...这部分,注销按钮在哪里:
bLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Backendless.UserService.logout(new AsyncCallback<Void>() {
@Override
public void handleResponse(Void response) {
finish();
Intent logoutIntent = new Intent(UserAreaActivity.this, LoginActivity.class);
UserAreaActivity.this.startActivity(logoutIntent);
}
@Override
public void handleFault(BackendlessFault fault) {
Toast.makeText(getApplicationContext(),"Nem sikerült kijelentkezni!",Toast.LENGTH_SHORT).show();
}
});
}
});
您可以通过共享首选项来做到这一点..如果用户登录只需将值存储在共享首选项中让我们说
Sp.putString("userinfo","loggedin");
Sp.commit();
每当你回来时只要检查首选项是否有登录值然后就去你的主要 activity.else 显示登录 activity
String data =SpEditor.getString("userinfo", null);
If(data!= null){
goto main}
Else goto login
希望对你有帮助!!
我在登录 activity 中有一个 "save" 复选框。如果用户选中它,下次应用程序启动时,跳过登录 activity。虽然,如果用户想要注销,登录 activity 中的复选框将设置为未选中。这个问题,我解决不了。
登录Activity保存部分:
saveLogin = loginPreferences.getBoolean("saveLogin", false);
if (saveLogin == true) {
etEmail.setText(loginPreferences.getString("email", ""));
etPassword.setText(loginPreferences.getString("password", ""));
saveLoginCheckBox.setChecked(true);
// editor.putBoolean("checked", true);
/* editor.putString("email", "etEmail"); // Storing string
editor.putString("password", "etPassword"); // Storing string*/
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(etEmail.getWindowToken(), 0);
String email = etEmail.getText().toString();
String password = etPassword.getText().toString();
if (saveLoginCheckBox.isChecked()) {
loginPrefsEditor.putBoolean("saveLogin", true);
loginPrefsEditor.putString("email", email);
loginPrefsEditor.putString("password", password);
loginPrefsEditor.commit();
} else {
loginPrefsEditor.clear();
loginPrefsEditor.commit();
}
Backendless.UserService.login(email, password, new AsyncCallback<BackendlessUser>() {
@Override
public void handleResponse(BackendlessUser response) {
Toast.makeText(getApplicationContext(),"Sikeres bejelentlezés",Toast.LENGTH_SHORT).show();
Intent loginIntent = new Intent(LoginActivity.this, CategoryActivity.class);
LoginActivity.this.startActivity(loginIntent);
}
@Override
public void handleFault(BackendlessFault fault) {
Toast.makeText(getApplicationContext(),"Sikertelen bejelentlezés",Toast.LENGTH_SHORT).show();
}
});
}
而用户activity...这部分,注销按钮在哪里:
bLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Backendless.UserService.logout(new AsyncCallback<Void>() {
@Override
public void handleResponse(Void response) {
finish();
Intent logoutIntent = new Intent(UserAreaActivity.this, LoginActivity.class);
UserAreaActivity.this.startActivity(logoutIntent);
}
@Override
public void handleFault(BackendlessFault fault) {
Toast.makeText(getApplicationContext(),"Nem sikerült kijelentkezni!",Toast.LENGTH_SHORT).show();
}
});
}
});
您可以通过共享首选项来做到这一点..如果用户登录只需将值存储在共享首选项中让我们说
Sp.putString("userinfo","loggedin");
Sp.commit();
每当你回来时只要检查首选项是否有登录值然后就去你的主要 activity.else 显示登录 activity
String data =SpEditor.getString("userinfo", null);
If(data!= null){
goto main}
Else goto login
希望对你有帮助!!