2017-10-16 2 views
0

Ich bin Learning Android-Entwicklung. Ich mache eine Registrierung und Login-App. Meine Registrierung und Anmeldung funktioniert ordnungsgemäß. Aber ich weiß nicht, wie man Benutzernamen und Passwort in gemeinsamen Präferenzen speichert. und legen Sie einen booleschen Wert fest, um den Schrägstrich zu überprüfen, um die Anmeldung zu überprüfen. hier mein Code.Ich möchte einen Benutzernamen und ein Passwort in freigegebenen Einstellungen

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); 
    } 
} 

Dies ist mein Schrägstrich-Code.

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); 
    } 
} 

Bitte helfen Sie mir, dieses Problem zu lösen. Vielen Dank im Voraus.

+0

haben Sie einen Blick auf diese [** Antwort **] (https: // stackoverflow.com/questions/9233035/best-option-to-store-username-and-password-in-android-app) – Mandy8055

+0

Was ist dein Problem genau? –

+0

nur ein Tipp, Sie sollten nicht das Passwort auf dem Gerät speichern, sollten Sie einige Authtoken oder Cookies für die Authentifizierung verwenden. –

Antwort

0

Daten speichern in gemeinsamen Präferenzen auf diese Weise:

SharedPreferences settings = getSharedPreferences("Login", 0); 
settings.edit().putString("user", username).apply(); 
... 

Und überprüfen Sie die Daten Splash-Screen

String username = settings.getString("user", ""); 
if (username.isEmpty()){ 
    //.. data not saved 
} else { 
//.. data saved 
} 
Verwandte Themen