Daten bzw Objekte auf das Handy lokal speichern

Diskutiere Daten bzw Objekte auf das Handy lokal speichern im Mobile Geräte Bereich.
P

Panda9296

Hi ich versuche folgendes Objekt zu speichern und finde einfach keine Lösung wie das gehen soll. Ich möchte keine Datenbank sondern die Accountinfos sollen so einfach wie es geht aufs handy gespeichert werden. Ich möchte mit den Daten arbeiten also zu diesem User sollen dann noch andere Sachen hinzugefügt werden

Code:
package de.miguel.frozzenlist.frozzenbetaa;

import androidx.appcompat.app.AppCompatActivity;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class Register extends AppCompatActivity {

    private static final String TAG = Register.class.getSimpleName();
    private static final String FILENAME= TAG+ "database.txt";


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

    public void Register(View view) {
        //decliation
        String input;
        String inputE;
        String inputP;
        String inputControlP;
        Counter counter = null;
        SharedPreferences mySPR;

        int inputID;
        User user =new User();
        String userData;



        //source
        EditText inputName= (EditText)findViewById(R.id.bntInputName);
        EditText inputEmail=(EditText)findViewById(R.id.bntInputEmail);
        EditText setPasswort=(EditText)findViewById(R.id.bntsetPasswort);
        EditText setControlPasswort=(EditText)findViewById(R.id.bntControlPasswort);


        //set to User
        input= (inputName.getText().toString());
        inputE= (inputEmail.getText().toString());
        inputP= (setPasswort.getText().toString());
        inputControlP=(setControlPasswort.getText().toString());


       user.setUserName(input);
       user.setEmail(inputE);
        if(input.equals(inputControlP)){
            user.setPasswort(inputP);
        }
        inputID=counter.getId();
        user.setUserID(inputID);
        userData= user.toString();

       


    }

  }
 
P

Panda9296

Das wäre jetzt die Vorlage. Das heisst so wie ich das verstehe müsste ich jetzt die UserID bei "edtor.putint("USERID",variable was auch immer hier rein kommt) setzen? Weil ich habe es schonmal versucht und irgendwie will er mir den User nicht speichern. Ich denke, da es mein erstes mal ist das ich das machen möchte, dass ich irgenwie ein Denkfehler habe. Ich muss aber schon das Objekt als String einspeichern?

Code:
 // Called when user click to Save button.
    public void doSave(View view)  {
        // The created file can only be accessed by the calling application
        // (or all applications sharing the same user ID).
        SharedPreferences sharedPreferences= this.getSharedPreferences("gameSetting", Context.MODE_PRIVATE);
 
        SharedPreferences.Editor editor = sharedPreferences.edit();
 
        editor.putInt("brightness", this.seekBarBrightness.getProgress());
        editor.putInt("sound", this.seekBarSound.getProgress());
 
        // Checked RadioButton ID.
        int checkedRadioButtonId = radioGroupDiffLevel.getCheckedRadioButtonId();
 
        editor.putInt("checkedRadioButtonId", checkedRadioButtonId);
 
        // Save.
        editor.apply();
 
        Toast.makeText(this,"Game Setting saved!",Toast.LENGTH_LONG).show();
    }
 
P

Panda9296

Ich weiß das hört sich echt doof an, aber ich verzweifle seit gestern um 10 Uhr morgens daran :D Der PC ist also schon fast fliegen gelernt ^^. Ich verstehe nicht so ganz was da genau passiert. Ich habe mir das durchgelesen. Es geht darum einen User beim regristrieren zu speichern. Gut ich habe bereits eine UserID gesetzt die habe ich jetzt so gespeichert:

Code:
editor.putString("inputiD",userData);
        editor.commit();
Dabei ist die userData der User mit toString... also die Attribute sind in einem String wie folgt verpackt:

Code:
public String toString() {
        return "#" + userID + "#" + userName + "#" + passwort + "#" + email
                + "#";
    }
so ich müsste das doch jetzt irgendwie sehen und vor allem, wenn ich das gespeichert habe und es damit funktioniert hätte, müsste ich doch den login einfach gestalten können.

Wenn es eingespeichert ist müsste es nach meinem Verständnis von :
Code:
editor.putString("inputiD",userData);
        editor.commit();
(also das habe ich jetzt nach dem Schema vom Guide eingetragen)unter der ID inputID gespeichert sein und unter der ID müsste der string eingespeichert sein... Wo finde ich das, wenn es so ist, da ich ja jetzt den login machen möchte, wo ich diese ID suchen muss. nur wo suche ich sie. Habe ich überhaupt mit dem Befehl :

Code:
SharedPreferences sharedPreferences= this.getSharedPreferences("User.txt",0);
die Datei User.txt erzeugt^^?
 
mihe7

mihe7

Naja, wenn Du auf die Daten wieder zugreifen willst, holst Du Dir die SharedPreferences
Java:
SharedPreferences sharedPreferences= this.getSharedPreferences("gameSetting", Context.MODE_PRIVATE);
und liest sie aus:
Java:
int brightness = sharedPreferences.getInt("brightness");
(Um mal bei Deinem Beispiel aus Kommentar #3 zu bleiben).
 
P

Panda9296

Naja, wenn Du auf die Daten wieder zugreifen willst, holst Du Dir die SharedPreferences
Java:
SharedPreferences sharedPreferences= this.getSharedPreferences("gameSetting", Context.MODE_PRIVATE);
und liest sie aus:
Java:
int brightness = sharedPreferences.getInt("brightness");
(Um mal bei Deinem Beispiel aus Kommentar #3 zu bleiben).
Kann man den sharedPreferences dann auch in einer anderen Activity öffnen? Für den Log in also
 
mihe7

mihe7

Natürlich. Die SharedPreferences sind das, was Du normalerweise in den Optionen der App einstellst. Verwendet werden die dann an unterschiedlichen Stellen in der App.
 
P

Panda9296

ok. Hast du vielleicht deutsche Quellen? Das ich vielleicht nochmal auf deutsch nachlesen kann, da es so nicht funktioniert ^^ . Ich muss da wohl nochmal genauer kucken
 
mihe7

mihe7

Nein, deutsche Quellen habe ich nicht. Du musst halt in Deiner Activity Dir die gleichen SharedPreferences holen.
 
P

Panda9296

Nein, deutsche Quellen habe ich nicht. Du musst halt in Deiner Activity Dir die gleichen SharedPreferences holen.
Leider ist es einfach nicht möglich, da der Compoiler in jeder Variation einen Fehler schmeisst: Sicher das es so geht?
Ich kann die Daten jedenfalls nicht holen so wie du es beschreibst =(

Code:
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 static android.app.PendingIntent.getActivity;

public class MainActivity extends Activity implements View.OnClickListener {

    Button btnRegister;
    Button btnSignIn;
    int userID;
    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);

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

                EditText inputName= (EditText)findViewById(R.id.bntViewEmail);
                EditText inputPasswort= (EditText)findViewById(R.id.btnViewPasswort);
                // Shared Preferencs

                sharedPreferences= getActivity().getSharedPreferences("userID",Context.MODE_PRIVATE);

                
            }
        });

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

    }
er akzeptiert die getActivity nicht. Ich habe es mit einem intent probiert... er erkennt den initialisierten Intent nicht.


Die Regrstry müsste richtig sein und da hat auch laut code alles geklappt...

Code:
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;



    int inputID;
    User user =new User();
    String userData;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        regristryFinish=(Button)findViewById(R.id.btnRegistry);
        regristryFinish.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {


        //decliation
        String input;
        String inputE;
        String inputP;
        String inputControlP;
        Counter counter = null;



        //source
        EditText inputName= (EditText)findViewById(R.id.bntInputName);
        EditText inputEmail=(EditText)findViewById(R.id.bntInputEmail);
        EditText setPasswort=(EditText)findViewById(R.id.bntsetPasswort);
        EditText setControlPasswort=(EditText)findViewById(R.id.bntControlPasswort);
        TextView inputAnswer=(TextView) findViewById(R.id.btnAnswer);




        //set to User
        input= (inputName.getText().toString());
        inputE= (inputEmail.getText().toString());
        inputP= (setPasswort.getText().toString());
        inputControlP=(setControlPasswort.getText().toString());


       user.setUserName(input);
       user.setEmail(inputE);
        if(input.equals(inputControlP)){
            user.setPasswort(inputP);
        }
        else {
            inputAnswer.setText("Passwörter stimmen nicht überein");
        }


        inputID=counter.getId();
        user.setUserID(inputID);
        userData= user.toString();
        sharedPreferences= this.getSharedPreferences("User.txt",0);
        SharedPreferences.Editor editor=sharedPreferences.edit();

        inputAnswer.setText("Regristration erfolgreich!");
        editor.putString("inputiD",userData);
        editor.commit();

        Intent intent= new Intent(this,MainActivity.class);
        startActivity(intent);

    }


}
 
mihe7

mihe7

er akzeptiert die getActivity nicht.
Natürlich nicht. Du bist in einem Listener, da es sich aber um eine anonyme innere Klasse in der MainActivity handelt, kannst Du auf das MainActivity-Objekt per MainActivity.this zugreifen: MainActivity.this.getSharedPreferences(...) im Listener sollte also funktionieren.

Nachtrag: außerdem kannst Du sharedPreferences außerhalb des Listeners initialisieren.
 
P

Panda9296

okay interessant dieses android ^^ aber ich kann dann diesen Zugriff noch nicht als String bearbeiten? Dazu müsste ich dann sagen

String user = sharedPreferences.getString("userID");
und dann kann ich den wie in den Grundlagen von Java bearbeiten? bzw auslesen weil ich ja überprüfen möchte, ob die daten übereinstimmen.

Ich hab das alles halt nur in java und ohne speicherung von daten gemacht deswegen bin ich dabei voll lost :D
 
mihe7

mihe7

okay interessant dieses android
Das hat jetzt wiederum nichts mit Android zu tun :)

Mit new View.OnClickListener() { erzeugst Du eine anonyme Klasse, die von View.OnClickListener abgeleitet ist.

Die Methode public void onClick(View view) { ist Teil dieser Klasse, dem entsprechend zeigt this dort nicht auf das MainActivity-Objekt sondern auf das Objekt der anonymen Klasse (d. h. den OnClickListener, den Du gerade mit new erzeugt hast).

Da die umschließende Klasse die MainActivity ist, kannst Du jedoch auf das Objekt der MainActivity via MainActivity.this zugreifen. Das ist alles Standard-Java.


Java:
class A {
    class B {
        // hier bezieht sich this auf ein B-Objekt
        // man kann aber per A.this auf das umschließende A-Objekt zugreifen
    }

    // hier bezieht sich this auf ein A-Objekt
}

Dazu müsste ich dann sagen

String user = sharedPreferences.getString("userID");

und dann kann ich den wie in den Grundlagen von Java bearbeiten? bzw auslesen weil ich ja überprüfen möchte, ob die daten übereinstimmen.
Klar, Du hast ein SharedPreferences-Objekt und das kannst Du ganz normal verwenden.

Der Unterschied zwischen Android und Java auf dem Desktop liegt nicht in der Sprache, sondern im Framework (und den Paketen, die zur Verfügung stehen). Die Sprache ist immer gleich und funktioniert immer gleich.

Das Framework ist einfach schon sehr verschieden vom Desktop. Die strikte Entkopplung von Activities über Intents und Broadcasts z. B. ist für Desktop-Programmierer erstmal sehr ungewöhnlich. Dann ist auf die Verwendung des richtigen Contexts zu achten. Auch, dass das Framework aktiv ins Geschehen eingreift, ist strange. Insofern ist es wichtig, sich an die Vorgaben von Android zu halten, sonst entsteht Murks, der zwar halbwegs funktioniert, aber in bestimmten Situationen einfach crasht.
 
P

Panda9296

Also das, was du jetzt von Java beschreibst ist mir bekannt. Zumindest von Java^^. Ich habe jetzt mal versucht alles zu befolgen
Ich bin auch tatsächlich weiter gekommen bis ich versucht habe den String zu zerlegen. Also was vielleicht auf dein Muster nicht zutrifft ist, dass die Registrierung ja in einer anderen aktivity stattfindet. Das ding dabei ist jetzt natürlich. Warum crasht es jetzt, weil ich mir sicher bin, dass ich den String richtig zerlegt habe. Ich denke es hat aufjedenfall was mit android zu tun. Also sobald ich daten eingebe crasht es -.-.

Code:
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;
    int userID;
    SharedPreferences sharedPreferences;
    String user;

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

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

                EditText inputEmail= (EditText)findViewById(R.id.bntViewEmail);
                EditText inputPasswort= (EditText)findViewById(R.id.btnViewPasswort);
                // Shared Preferencs

                sharedPreferences= MainActivity.this.getSharedPreferences
                                               ("userID",Context.MODE_PRIVATE);
                String email = inputEmail.getText().toString();
                String passwort= inputPasswort.getText().toString();
                user = sharedPreferences.toString();
                if(email.isEmpty()){
                    inputEmail.setError("bitte Email eingeben");
                    inputEmail.requestFocus();
                }
                else if(passwort.isEmpty()){
                    inputPasswort.setError("Bitte geben Sie ein Passwort ein");
                    inputPasswort.requestFocus();
                }
                else if(!email.isEmpty()&&!passwort.isEmpty()){
                    for(int i=0;i<user.length();i++){
                       String userAddributs[]=  user.split("#");
                        Arrays.toString(userAddributs);
                        if(email.equals(userAddributs[2])&&passwort.equals(userAddributs[3])){
                            Intent intent= new Intent(MainActivity.this,
                                                                     FreezerManagment.class);
                            startActivity(intent);
                        }else if(!email.equals(userAddributs[2])){
                            inputEmail.setError("Emailadresse stimmt nicht überein.");
                        }else if(!passwort.equals(userAddributs[3])){
                            inputPasswort.setError("Passwort stimmt nicht überein.");
                        }
                    }
                }
            }
        });

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

    }
}
 
mihe7

mihe7

Schau mal ins Stacktrace, da steht genau, in welcher Zeile es crasht und in der Regel auch ein Hinweis darauf, warum.
 
mihe7

mihe7

Ei, ei, ei, jetzt sehe ich das erst. Da stimmt ja gar nichts zusammen:

1. Du musst schon die gleichen Preferences laden, die Du zuvor gespeichert hast.

sharedPreferences= this.getSharedPreferences("User.txt",0);
vs.
sharedPreferences= MainActivity.this.getSharedPreferences("userID",Context.MODE_PRIVATE);

User.txt ist nicht "userID".

2. user = sharedPreferences.toString(); -- was soll das werden?

3. hast Du editor.putString("inputiD",userData); verwendet, dann musst Du auch den Key "inputiD" verwenden, um an die Daten heranzukommen.

String userData = sharedPreferences.getString("inputiD");
 
P

Panda9296

Okay. also das erste habe ich gemacht weil... naja ich habe einfach falsch gedacht. Ich denke es muss immer eine Datei erzeugt werden. Ich dachte ich muss mit
Code:
sharedPreferences= this.getSharedPreferences("user.txt",0);
eine Datei erzeugen.
Es wird aber in xml eingespeichert also ... ja.
So wie ich das verstehe muss die zeile also natürlich in "inputID"gewechselt werden... soweit so gut.
1b.Im Code habe ich vergessen das Array in dem ich den Userstring eingespeichert habe auch abzufragen.. hab ich gefunden.
2.ja ein dummer gedanke den string nochmal extra einzuspeichern
3. in der MainActivity habe ich es überarbeitet:
Code:
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;
    String user;

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

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

                EditText inputEmail= (EditText)findViewById(R.id.bntViewEmail);
                EditText inputPasswort= (EditText)findViewById(R.id.btnViewPasswort);
                // Shared Preferencs

                sharedPreferences= MainActivity.this.getSharedPreferences
                                               ("userID",Context.MODE_PRIVATE);
                String email = inputEmail.getText().toString();
                String passwort= inputPasswort.getText().toString();

                if(email.isEmpty()){
                    inputEmail.setError("Bitte Email eingeben");
                    inputEmail.requestFocus();
                }
                else if(passwort.isEmpty()){
                    inputPasswort.setError("Bitte geben Sie ein Passwort ein");
                    inputPasswort.requestFocus();
                }
                else if(!email.isEmpty()&&!passwort.isEmpty()){
                    for(int i=0;i<user.length();i++){
                       String userAddributs[]=  user.split("#");
                       for(int j=0;j<userAddributs.length;j++){
                           Arrays.toString(userAddributs);
                           if(email.equals(userAddributs[2])&&passwort.equals(userAddributs[3])){
                               Intent intent= new Intent(MainActivity.this,
                                       FreezerManagment.class);
                               startActivity(intent);
                           }else if(!email.equals(userAddributs[2])){
                               inputEmail.setError("Emailadresse stimmt nicht überein.");
                           }else if(!passwort.equals(userAddributs[3])){
                               inputPasswort.setError("Passwort stimmt nicht überein.");
                           }
                           else{
                               inputEmail.setError("Emailadresse stimmt nicht überein.");
                               inputPasswort.setError("Passwort stimmt nicht überein.");
                           }
                       }

                    }
                }
            }
        });

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

    }
}
Code:
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;



    int inputID;
    User user =new User();
    String userData;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        regristryFinish=(Button)findViewById(R.id.btnRegistry);
        regristryFinish.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {


        //decliation
        String input;
        String inputE;
        String inputP;
        String inputControlP;
        Counter counter = null;



        //source
        EditText inputName= (EditText)findViewById(R.id.bntInputName);
        EditText inputEmail=(EditText)findViewById(R.id.bntInputEmail);
        EditText setPasswort=(EditText)findViewById(R.id.bntsetPasswort);
        EditText setControlPasswort=(EditText)findViewById(R.id.bntControlPasswort);
        TextView inputAnswer=(TextView) findViewById(R.id.btnAnswer);




        //set to User
        input= (inputName.getText().toString());
        inputE= (inputEmail.getText().toString());
        inputP= (setPasswort.getText().toString());
        inputControlP=(setControlPasswort.getText().toString());


       user.setUserName(input);
       user.setEmail(inputE);
        if(input.equals(inputControlP)){
            user.setPasswort(inputP);
        }
        else {
            inputAnswer.setText("Passwörter stimmen nicht überein");
        }


        inputID=counter.getId();
        user.setUserID(inputID);
        userData= user.toString();
        sharedPreferences= this.getSharedPreferences("User.txt",0);
        SharedPreferences.Editor editor=sharedPreferences.edit();

        inputAnswer.setText("Regristration erfolgreich!");
        editor.putString("inputID",userData);
        editor.commit();

        Intent intent= new Intent(this,MainActivity.class);
        startActivity(intent);

    }
}
Das ist jetzt die Fehlermeldung:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: de.miguel.frozzenlist.frozzenbetaa, PID: 18749
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at de.miguel.frozzenlist.frozzenbetaa.MainActivity$1.onClick(MainActivity.java:59)
at android.view.View.performClick(View.java:7438)
at android.view.View.performClickInternal(View.java:7415)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28286)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
 
mihe7

mihe7

So wie ich das verstehe muss die zeile also natürlich in "inputID"gewechselt werden... soweit so gut.
Nein. Die Preferences sind eine Sammlung von Key-Value-Paaren und die werden in einer Datei gespeichert. Natürlich musst Du dann die gleiche Datei verwenden. Ebenso musst Du den gleichen Key zum Schreiben und Lesen verwenden.

Du verwendest nach wie vor unterschiedliche Dateien
sharedPreferences= MainActivity.this.getSharedPreferences ("userID",Context.MODE_PRIVATE);
sharedPreferences= this.getSharedPreferences("User.txt",0);
und user wird überhaupt nicht ausgelesen.
 
P

Panda9296

Lach mich nicht aus :D
ich blicke nicht durch ich gehe seit über eine Stunde den kompletten Verlauf durch ich versuche deine Anweisungen umzusetzen, aber irgendwie....
darf ich dich vielleicht in Discord zu einer Konferenz einladen :D. Ich muss das verstehen wirklich ich sitze seit 3 Tagen daran. Bitte bitte :D
 
Thema: 

Daten bzw Objekte auf das Handy lokal speichern

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben