0
나는 학습 안드로이드 개발입니다. 등록 및 로그인 앱을 만들고 있습니다. 내 등록 및 로그인이 올바르게 작동합니다. 하지만 공유 환경 설정에서 사용자 이름과 비밀번호를 저장하는 방법을 모르겠습니다. 부울 값을 설정하여 슬래시 화면에서 로그인을 확인하십시오. 여기 내 코드 .공유 환경 설정에서 사용자 이름과 암호를 저장하려고합니다.
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
private final AppCompatActivity activity = LoginActivity.this;
private NestedScrollView nestedScrollView;
private TextInputLayout textInputLayoutEmail;
private TextInputLayout textInputLayoutPassword;
private TextInputEditText textInputEditTextEmail;
private TextInputEditText textInputEditTextPassword;
private AppCompatButton appCompatButtonLogin;
private AppCompatTextView textViewLinkRegister;
private InputValidation inputValidation;
private DatabaseHelper databaseHelper;
AnimationDrawable animationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initViews();
initListeners();
initObjects();
animationDrawable=(AnimationDrawable)nestedScrollView.getBackground();
animationDrawable.setEnterFadeDuration(1000);
animationDrawable.setExitFadeDuration(1000);
animationDrawable.start();
//saving data in shared priference
SharedPreferences sharedPreferences=getSharedPreferences("Login",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putBoolean("isLogin",true);
editor.putString("user", String.valueOf(textInputEditTextEmail));
editor.putString("pass", String.valueOf(textInputEditTextPassword));
editor.commit();
}
/**
* This method is to initialize views
*/
private void initViews() {
nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);
textInputLayoutEmail = (TextInputLayout) findViewById(R.id.textInputLayoutEmail);
textInputLayoutPassword = (TextInputLayout) findViewById(R.id.textInputLayoutPassword);
textInputEditTextEmail = (TextInputEditText) findViewById(R.id.textInputEditTextEmail);
textInputEditTextPassword = (TextInputEditText) findViewById(R.id.textInputEditTextPassword);
appCompatButtonLogin = (AppCompatButton) findViewById(R.id.appCompatButtonLogin);
textViewLinkRegister = (AppCompatTextView) findViewById(R.id.textViewLinkRegister);
}
/**
* This method is to initialize listeners
*/
private void initListeners() {
appCompatButtonLogin.setOnClickListener(this);
textViewLinkRegister.setOnClickListener(this);
}
/**
* This method is to initialize objects to be used
*/
private void initObjects() {
databaseHelper = new DatabaseHelper(activity);
inputValidation = new InputValidation(activity);
}
/**
* This implemented method is to listen the click on view
*
* @param v
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.appCompatButtonLogin:
verifyFromSQLite();
break;
case R.id.textViewLinkRegister:
// Navigate to RegisterActivity
Intent intentRegister = new Intent(getApplicationContext(), RegisterActivity.class);
startActivity(intentRegister);
break;
}
}
/**
* This method is to validate the input text fields and verify login credentials from SQLite
*/
private void verifyFromSQLite() {
if (!inputValidation.isInputEditTextFilled(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
return;
}
if (!inputValidation.isInputEditTextEmail(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
return;
}
if (!inputValidation.isInputEditTextFilled(textInputEditTextPassword, textInputLayoutPassword, getString(R.string.error_message_email))) {
return;
}
if (databaseHelper.checkUser(textInputEditTextEmail.getText().toString().trim()
, textInputEditTextPassword.getText().toString().trim())) {
Intent accountsIntent = new Intent(activity, HomePage.class);
accountsIntent.putExtra("EMAIL", textInputEditTextEmail.getText().toString().trim());
emptyInputEditText();
startActivity(accountsIntent);
finish();
} else {
// Snack Bar to show success message that record is wrong
Toast.makeText(getApplicationContext(),getString(R.string.error_valid_email_password),Toast.LENGTH_LONG).show();
}
}
/**
* This method is to empty all input edit text
*/
private void emptyInputEditText() {
textInputEditTextEmail.setText(null);
textInputEditTextPassword.setText(null);
}
}
이것은 내 슬래시 화면 코드입니다.
public class MainActivity extends AppCompatActivity {
private static int slash_screen_time_out=4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent=new Intent(getApplicationContext(),LoginActivity.class);
startActivity(intent);
finish();
}
},slash_screen_time_out);
}
}
이 문제를 해결하는 데 도움을주십시오. 미리 감사드립니다.
이 방법에 의해 공유 환경 설정에서
이 [** 답변 **] (HTTPS에서 참조하시기 바랍니다 : // stackoverflow.com/questions/9233035/best-option-to-store-username-and-password-in-android-app) – Mandy8055
정확히 어떤 문제가 있습니까? –
조언 만하면됩니다. 장치에 비밀번호를 저장해서는 안되며, 인증을 위해 일부 authtoken 또는 쿠키를 사용해야합니다. –