2017-10-14 2 views
-2

Hey Leute, ich habe eine Login-Aktivität, die Benutzernamen und Passwort mit Server überprüft, um Benutzer zu authentifizieren. Ich möchte sharedpermissions verwenden, um Benutzernamen und Passwort zu speichern, damit sich der Benutzer nicht jedes Mal anmeldet. Ich möchte auch eine Login-Schaltfläche erstellen. Ich habe versucht, es zu implementieren, aber es überspringt Login-Aktivität und bringt mich zu meiner zweiten Aktivität. Ich habe einige der freigegebenen Freischaltcodes als Kommentare (//)wie zu implementieren SHARED PREFERENCE (Java, SQL-Datenbank LOGIN)

kann mir jemand zeigen/sagen, das Beste, was ich tun kann?

public class LoginActivity extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 


    //String username = ""; 
    //String password = ""; 
    //SharedPreferences pre; 


    final EditText etUsername = (EditText) findViewById(R.id.etUsername); 
    final EditText etPassword = (EditText) findViewById(R.id.etPassword); 
    final TextView tvRegisterLink = (TextView) findViewById(R.id.tvRegisterhere); 
    final Button bLogin = (Button) findViewById(R.id.bLogin); 

    if(TextUtils.isEmpty(etUsername.getText().toString())||TextUtils.isEmpty(etPassword.getText().toString())){ 
     Intent intent = new Intent(LoginActivity.this, UserAreaActivity.class); 
     LoginActivity.this.startActivity(intent); 
    } else { 
     Intent registerIntent = new Intent(LoginActivity.this, LoginActivity.class); 
     LoginActivity.this.startActivity(registerIntent); 
    } 




    final String username1 = SharedPreferenceUtils.getUsername(this); 
    final String password1 = SharedPreferenceUtils.getPassword(this); 

    // pre = getSharedPreferences("pref",MODE_PRIVATE); 
    //if(pre.getBoolean("username",true) && pre.getBoolean("password",true)){ 













    tvRegisterLink.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent registerIntent = new Intent(LoginActivity.this, RegisterActivity.class); 
      LoginActivity.this.startActivity(registerIntent); 
     } 
    }); 

    bLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final String username = etUsername.getText().toString(); 
      final String password = etPassword.getText().toString(); 


      // Response received from the server 
      Response.Listener<String> responseListener = new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        try { 
         JSONObject jsonResponse = new JSONObject(response); 
         boolean success = jsonResponse.getBoolean("success"); 

         if (success) { 
          String name = jsonResponse.getString("name"); 
          SharedPreferenceUtils.createSP(LoginActivity.this,username1,password1); 





          Intent intent = new Intent(LoginActivity.this, UserAreaActivity.class); 
          intent.putExtra("name", name); 
          intent.putExtra("username", username); 

          LoginActivity.this.startActivity(intent); 


         } else { 
          AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); 
          builder.setMessage("Login Failed") 
            .setNegativeButton("Retry", null) 
            .create() 
            .show(); 
         } 

        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }; 

      LoginRequest loginRequest = new LoginRequest(username, password, responseListener); 
      RequestQueue queue = Volley.newRequestQueue(LoginActivity.this); 
      queue.add(loginRequest); 






     } 
    }); 


} 

}

public class UserAreaActivity extends AppCompatActivity { 

@Override 
protected void onCreate (Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_user_area); 


    final TextView etusername = (TextView) findViewById(R.id.textView2); 
    final TextView etwelcome = (TextView) findViewById(R.id.textView); 
    final ImageButton red = (ImageButton) findViewById(R.id.imageButton); 
    final ImageButton messages = (ImageButton) findViewById(R.id.imageButton2); 
    final ImageButton blue = (ImageButton) findViewById(R.id.imageButton3); 
    final ImageButton ping = (ImageButton) findViewById(R.id.imageButton4); 
    final TextView etuname = (TextView) findViewById(R.id.textView3); 
    final Button Logout = (Button) findViewById(R.id.logout); 

    //String Name = SharedPreferenceUtils.getName(this); 
    //etwelcome.setText(Name); 




    red.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent registerIntent = new Intent(UserAreaActivity.this, Report.class); 
      UserAreaActivity.this.startActivity(registerIntent); 

     } 
    }); 

    messages.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent registerIntent = new Intent(UserAreaActivity.this, Messages.class); 
      UserAreaActivity.this.startActivity(registerIntent); 


     } 
    }); 

    Logout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      boolean isClear = SharedPreferenceUtils.clearSP(UserAreaActivity.this); 
      if(isClear){ 
       Intent registerIntent = new Intent(UserAreaActivity.this, LoginActivity.class); 
       UserAreaActivity.this.startActivity(registerIntent); 
      } 




     } 
    }); 

    Intent intent = getIntent(); 
    String name = intent.getStringExtra("name"); 
    String username = intent.getStringExtra("username"); 



    String message = "Welcome " + name; 
    etwelcome.setText(message); 
    etusername.setText(username); 








    //Intent in = new Intent(getApplicationContext(), Messages.class); 
    //in.putExtra("username", username); 
    //UserAreaActivity.this.startActivity(in); 

} 











} 

Antwort

0

Sie können SharedPreferences in Ihrem Code verwenden.

Versuchen Sie dies.

public class SharedPreferenceUtils { 

    private static final String SP_NAME = "sp"; 
    public static final String USERNAME = "username"; 
    public static final String PASSWORD = "password"; 


    // create 
    public static boolean createSP(Context context, String username, String password) { 
     SharedPreferences.Editor editor = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).edit(); 
     editor.putString(USERNAME, username); 
     editor.putString(PASSWORD, password); 
     return editor.commit(); 
    } 

    // clear 
    public static boolean clearSP(Context context) { 
     SharedPreferences sharedPreferences = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     return editor.clear().commit(); 
    } 

    // get access info 
    public static String getUsername(Context context) { 
     SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); 
     return sp.getString(USERNAME, ""); 
    } 
    // get branch info 
    public static String getPassword(Context context) { 
     SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); 
     return sp.getString(PASSWORD, ""); 
    } 
} 

Verwendung in LoginActivity

SharedPreferenceUtils.createSP(this,username,password); 

Und Activity

String username = SharedPreferenceUtils.getUsername(this); 
String password = SharedPreferenceUtils.getPassword(this); 

Edit in anderen

verwenden
if (success) { 
     String name = jsonResponse.getString("name"); 
     SharedPreferenceUtils.createSP(this, username, password); 
} 

bearbeiten

private EditText etUsername, etPassword; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    etUsername = (EditText) findViewById(R.id.etUsername); 
    etPassword = (EditText) findViewById(R.id.etPassword); 

    String username = SharedPreferenceUtils.getUsername(this); 
    String password = SharedPreferenceUtils.getPassword(this); 
    etUsername.setText(username); 
    etPassword.setText(password); 
} 

bearbeiten

if(TextUtils.isEmpty(etUsername.getText().toString())||TextUtils.isEmpty(etPassword.getText().toString())){ 
     Intent intent = new Intent(LoginActivity.this, A.class); 
     LoginActivity.this.startActivity(intent); 
} else { 
     Intent registerIntent = new Intent(LoginActivity.this, B.class); 
     LoginActivity.this.startActivity(intent); 
} 

bearbeiten

boolean isClear = SharedPreferenceUtils.clearSP(UserAreaActivity.this); 
if(isClear){ 
     Intent registerIntent = new Intent(UserAreaActivity.this, LoginActivity.class); 
     UserAreaActivity.this.startActivity(registerIntent); 
} 
Verwandte Themen