나는 그것의 잘못은, 토스트 그가 방금 입력 한 문자열이 잘못이 새로운 사실이다하는 사용자 뜹니다 경우 글고 치기에 입력 한 문자열이 공유 환경 설정에 저장되어있는 것과 동일한 지 여부를 조사하는 안드로이드 응용 프로그램을 작성했습니다 활동은 열려 있습니다. 나는이 공개 활동이 사용자가 응용 프로그램을 열 때마다 열 수 싶습니다.
여기에 내가 시도 할 것입니다 :
private PreferenceHelper preferenceHelper;
private ParseContent parseContent;
private final int RegTask = 1;
private EditText editText;
private Button button;
private String string;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login2);
parseContent = new ParseContent(this);
preferenceHelper = new PreferenceHelper(this);
editText = findViewById(R.id.code);
button = findViewById(R.id.abonnement);
final SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
string = editText.getText().toString();
if (string.equals(pref.getString("code", null))){
Intent intent = new Intent(Login.this, WelcomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}else {
Toast.makeText(Login.this, "Désolé mais votre code est incorrect",Toast.LENGTH_LONG).show();
}
}
});
}
사용자가 올바른 코드를 입력하면 기본 설정에서 이전에 등록 된 코드가 공유 즉, WelcomeActivty.class
열리지 만 사용자가 응용 프로그램을 종료하고 다시 입력 할 때, Login.class
내가 좋아하는 것 중에 항상 표시되어 WelcomeActivity.class
사용자가 응용 프로그램을 다시 입력 할 때마다 출시 될 .. ..How 나는이 좀 할 수 있을까요?!
참고 : 당신이 로그인 시스템에서 작동하지 않는 경우에도, (암호 없음) 로그인 시스템을 만들어, 난 아직이 기술은 여전히 귀하의 경우에 적용 할 수 있다고 생각합니다.
부울 값 저장은 사용자가 온라인인지 여부를 확인하는 또 다른 sharedpreference를 추가하려고합니다. 예를 들어, 당신의 LoginActivity에 추가
editor.putBoolean ( "isOnline", TRUE); editor.apply ();
당신은 로그인 버튼을 클릭합니다.
마찬가지로, 로그 아웃 할 때, 바로 넣어
editor.putBoolean ( "isOnline", 거짓); editor.apply ();
이것은 내가 당신의 문제에 따라 한 방법이다.
MainActivity.java (이 로그인 활동)
public class MainActivity extends AppCompatActivity {
SharedPreferences pref;
SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText et = findViewById(R.id.et);
Button btnRegister = findViewById(R.id.btn_register);
Button btnLogin = findViewById(R.id.btn_login);
pref = getSharedPreferences("MyPref", MODE_PRIVATE);
editor = pref.edit();
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editor.putString("username", et.getText().toString());
editor.putBoolean("isOnline", false);
editor.apply();
}
});
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.getText().toString().equals(pref.getString("username", null))) {
Intent intent = new Intent(getApplicationContext(), WelcomeActivity.class);
intent.putExtra("name", et.getText().toString());
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
editor.putBoolean("isOnline", true);
editor.apply();
startActivity(intent);
finish();
}
else {
Toast.makeText(MainActivity.this, "Incorrect input", Toast.LENGTH_LONG).show();
}
}
});
// This is when user has not clicked the log out button, then we go to the WelcomeActivity instead
if (pref.getBoolean("isOnline", false)) {
startActivity(new Intent(getApplicationContext(), WelcomeActivity.class));
finish();
}
}
}
WelcomeActivity.java (활동 우리는 로그인 후 방문)
public class WelcomeActivity extends AppCompatActivity {
SharedPreferences pref;
SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
pref = getSharedPreferences("MyPref", MODE_PRIVATE);
editor = pref.edit();
editor.putBoolean("isOnline", true);
editor.apply();
Button btnLogout = findViewById(R.id.logout);
btnLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// When user clicks on the logout button, we set this to false. So everything will be back to normal.
editor.putBoolean("isOnline", false);
editor.apply();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finishAffinity();
}
else {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
}
});
}
}