# Login und Registrierung Android Anzeige



## Panda9296 (24. Jun 2020)

Hi Leute ich mal wieder,
Es geht um den Login und die Registrierung mit SharedPreferences. Ich habe nochmal guides geschaut und es nochmal gemacht. Das Speichern ist erfolgreich . Allerdings gibt es beim Laden Probleme. Ich denke, dass es eigentlich funktionieren müsste. Nur wird beim Display auf der nächsten Activity die Details nicht abgefragt... schade. Könnte wer mal drüber schauen, woran es liegt? Ich denke irgendwas passt nicht. Ich habe die Klasse User erstmal bewusst ausgelassen, hoffe aber auch, dass ich den User irgendwie dann damit verlinken kann. Der Login bzw. dessen Daten die gespeichert werden und geholt werden sollen ja auch später mit trays verknüpft werden.


```
package de.miguel.frozzenlist.frozzenbetaa;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.SharedPreferencesCompat;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Register extends AppCompatActivity implements View.OnClickListener {

    SharedPreferences sharedPreferences;

    Button regristryFinish;





    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        regristryFinish=(Button)findViewById(R.id.btnRegistry);
        regristryFinish.setOnClickListener(this);
        final EditText inputName= (EditText)findViewById(R.id.bntInputName);
        final EditText inputEmail=(EditText)findViewById(R.id.bntInputEmail);
        final EditText setPasswort=(EditText)findViewById(R.id.bntsetPasswort);
        final EditText setControlPasswort=(EditText)findViewById(R.id.bntControlPasswort);
        final TextView inputAnswer=(TextView) findViewById(R.id.btnAnswer);

        regristryFinish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                SharedPreferences preferences = getSharedPreferences("UserPreferences",0);
                String newUser= inputName.getText().toString();
                String newEmail= inputEmail.getText().toString();
                String newPasswort= setPasswort.getText().toString();
                String newPasswortCommit= setControlPasswort.getText().toString();
                SharedPreferences.Editor editor= preferences.edit();
                if(newPasswort.equals(newPasswortCommit)){
                    editor.putString(newEmail+newPasswort+"dataUser",
                                                    newUser+ "\n"+newEmail);
                    editor.commit();
                    if(editor.commit()){
                        inputAnswer.setText("Regristration erfolgreich");
                    }
                    //commit
                    Intent loginScreen = new  Intent(Register.this,MainActivity.class);
                    startActivity(loginScreen);
                }

            }
        });

    }

    @Override
    public void onClick(View view) {
        Intent loginScreen = new  Intent(Register.this,MainActivity.class);
        startActivity(loginScreen);
    }
}
```


```
package de.miguel.frozzenlist.frozzenbetaa;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import java.util.Arrays;

import static android.app.PendingIntent.getActivity;

public class MainActivity extends Activity implements View.OnClickListener {

    Button btnRegister;
    Button btnSignIn;
    SharedPreferences sharedPreferences;


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

        btnRegister= (Button)findViewById(R.id.bntRegister);
        btnRegister.setOnClickListener(this);

        btnSignIn= (Button)findViewById(R.id.bntSignIn);
        final EditText inputEmail= (EditText)findViewById(R.id.bntViewEmail);
        final EditText inputPasswort= (EditText)findViewById(R.id.btnViewPasswort);

        // sign in condition
        btnSignIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                String userEmail = inputEmail.getText().toString();
                String passwort= inputPasswort.getText().toString();

                SharedPreferences preferences= getSharedPreferences("UserPreferences"
                                                                                 ,0);
                String userDetails = preferences.getString(userEmail+passwort+"userData",
                                                           "Email oder Passwort falsch");
                SharedPreferences.Editor editor=  preferences.edit();
                editor.putString("display",userDetails);
                editor.commit();


                Intent freezerManager = new Intent(MainActivity.this,FreezerManagment.class);
                startActivity(freezerManager);
                }


        });

    }
     //register button
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(this,Register.class);
        startActivity(intent);

    }
}
```


```
package de.miguel.frozzenlist.frozzenbetaa;

import java.io.File;

public class User {

    private  int userID;
    private String userName;
    private String passwort;
    private String email;


    public User() {
        this.userID = userID;
        this.userName = userName;
        this.passwort=passwort;
        this.email=email;
    }


    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPasswort() {
        return passwort;
    }
    public void setPasswort(String passwort) {
        this.passwort=passwort;
    }
    public String getEmail(){
        return email;
    }
    public void setEmail(String inputEmail){
        this.email=inputEmail;
    }
    public void changePasswort(String input)
    {
        this.passwort= input;
    }

    public int getUserID(){
        return userID;
    }
    public void setUserID(int input){
        this.userID=input;
    }
    @Override
    public String toString() {
        return "#" + getUserID() + "#" + getUserName() + "#" + getEmail() + "#" + getPasswort()
                + "#";
}
}
```


```
package de.miguel.frozzenlist.frozzenbetaa;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class FreezerManagment extends AppCompatActivity {

    Button btnFreezerAdd;
    Button btnFreezerJoin;
    Button btnBack;
    TextView etDisplay;
    String display;

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

        btnFreezerAdd=(Button)findViewById(R.id.btnFreezerAdd);
        btnFreezerJoin=(Button)findViewById(R.id.btnFreezerJoin);
        btnBack=(Button)findViewById(R.id.btnBack);
        etDisplay=(TextView) findViewById(R.id.etDisplay);

        SharedPreferences preferences= getSharedPreferences("UserPreferences",0);
        display= preferences.getString("display","");
        etDisplay.setText(display);

        btnFreezerAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });
    }

}
```


----------



## mihe7 (24. Jun 2020)

userEmail+passwort+"userData"
vs
newEmail+newPasswort+"dataUser"


----------



## Panda9296 (24. Jun 2020)

Ja das hatte ich erst nur wird es mir dann als Fehler gemeldet. 



 Minute 12:15min wird es auch genauso gezeigt. Das ist nämlich genau das Problem. Ich hab gelesen gelesen gelesen die Tage^^ und ich muss sagen ich hab jetzt verstanden es ist eine Datei, in der man Attribute reinschreibt und wieder rausholt. Die müssen genauso rausgeholt werden wie sie reingeholt werden. Er macht das irgendwie ja nicht so


----------



## mihe7 (24. Jun 2020)

Panda9296 hat gesagt.:


> Die müssen genauso rausgeholt werden wie sie reingeholt werden. Er macht das irgendwie ja nicht so


Er schon, Du nicht  Er verwendet jedesmal einen Schlüssel, der auf "data" endet, Du dagegen hängst einmal "userData" und einmal "dataUser" hinten dran.


----------



## Panda9296 (24. Jun 2020)

ja da hatte ich ausversehen im alten code geschaut ich habe den Schlüssel selbstverständlich angepasst. trotzdem, wenn ich die Attribute genauso übernehme kommt ein Fehler .. Hier der Beweis:

// MainActivity


```
SharedPreferences preferences= getSharedPreferences("UserPreferences"
                                                                                 ,0);
                String userDetails = preferences.getString(newEmail+newPasswort+"dataUser",
                                                           "Email oder Passwort falsch");
                SharedPreferences.Editor editor=  preferences.edit();
                editor.putString("display",userDetails);
                editor.commit();
```


//register


```
editor.putString(newEmail+newPasswort+"dataUser",newUser+ "\n"+newEmail);
                    editor.commit();
```

Es ist eins zu eins ich habs jetzt beim schreiben nochmal überprüft. Also in der Main werden die Attribute, die geholt werden sollen falsch angezeigt . Also er erkennt sie nicht


----------



## Panda9296 (24. Jun 2020)

Hat geklappt danke =)


----------



## mihe7 (24. Jun 2020)

Was wars?


----------



## Panda9296 (25. Jun 2020)

Ehrlich gesagt, hatte ich nur die Zeile neu eingeschrieben^^


----------

