Ich versuche, eine Anmeldung/Registrierung Aktivität mit Sharedreference zu machen. Die App enthält nur eine Login/Passwort-Information.Android Anmeldung/Registrierung mit sharedPreference
Beim ersten Start überprüft die App, ob der Benutzer bereits ein Konto erstellt hat. Dies wird unter einem booleschen Namen namens Registriert. Wenn das wahr ist, wird es die Login-Schaltfläche aktivieren und die Schaltfläche "Registrieren" deaktivieren. Wenn es falsch ist, wird es die Register-Schaltfläche aktivieren und die Login-Schaltfläche deaktivieren.
Wenn der gewünschte Benutzername und das Passwort eingegeben werden, können sie den Registrierungsbutton drücken, der den Benutzernamen und das Passwort in Strings eingibt, während der Boolesche Wert in true geändert wird. Dann wird die Aktivität sich selbst aktualisieren.
Zur Zeit kann ich die Tasten nicht ändern. Ich denke, dass ich geteilte Präferenzen falsch mache, da dies das erste Mal ist, dass ich mit ihnen arbeite. (Ich bin neu in Android-Entwicklung.)
Hier ist mein aktueller Code.
Ich habe den Code aktualisiert, um editor.apply()
Ich habe ein paar Stücke hinzugefügt, vor allem den Wert beim Start zu bekommen.
Letzte UPDATE: Ich habe das Problem behoben. Es schien innerhalb der .setenabled zu liegen, die ich für die Knöpfe benutzte. Sobald ich sie auf .Sichtbarkeit umgestellt habe, haben sie perfekt umgeschaltet. Danke Ihnen allen für Ihre Hilfe!
public class MainActivity extends AppCompatActivity {
EditText Username_input, Password_input;
String Username, Password;
//if false then no, if true then yes
boolean Registered;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
Registered = sharedPref.getBoolean("Registered", false);
Button RegisterButton = (Button) findViewById(R.id.Register_btn);
Button Loginbutton = (Button) findViewById(R.id.Login_btn);
// If the user is registered.
if (Registered == false) {
Loginbutton.setEnabled(false);
RegisterButton.setEnabled(true);
// If the user is registered already.
} else {
Loginbutton.setEnabled(true);
RegisterButton.setEnabled(false);
}
RegisterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Username_input = (EditText) findViewById(R.id.Username_input);
Password_input = (EditText) findViewById(R.id.Password_input);
Username = Username_input.getText().toString();
Password = Password_input.getText().toString();
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("Registered", true);
editor.putString("Username", Username);
editor.putString("Password", Password);
editor.apply();
finish();
startActivity(getIntent());
}
});
}
}
XML-Code
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/Username_txtview"
android:id="@+id/Username_txtview"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="32dp"
android:editable="false" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/Username_input"
android:enabled="true"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:layout_below="@+id/Username_txtview"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/Password_txtview"
android:id="@+id/Password_txtview"
android:layout_below="@+id/Username_input"
android:layout_alignLeft="@+id/Username_input"
android:layout_alignStart="@+id/Username_input" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/Password_input"
android:enabled="true"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:layout_below="@+id/Password_txtview"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
android:layout_marginRight="80dp"
android:text="@string/Login_btn"
android:id="@+id/Login_btn"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Register_btn"
android:id="@+id/Register_btn"
android:layout_below="@+id/Login_btn"
android:layout_marginLeft="80dp"
android:layout_marginRight="80dp"
android:layout_marginTop="26dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
/>
</RelativeLayout>
Wo sind Sie Wert aus dem gemeinsamen Vorlieben sich eintragen, bevor geprüft wird, ob es wahr/falsch ist? – Yashasvi
wird dies funktionieren, um den Wert zu erhalten? Registriert = sharedPref.getBoolean ("Registriert", wahr); – arthos455
posten Sie auch Ihre XML. – Yashasvi