Daten bzw Objekte auf das Handy lokal speichern

P

Panda9296

Bekanntes Mitglied
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

Bekanntes Mitglied

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

mihe7

Top Contributor
P

Panda9296

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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

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

Panda9296

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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

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

mihe7

Top Contributor
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

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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
 
mihe7

mihe7

Top Contributor
Ich habe kein Discord. Stell Dir die SharedPreferences einfach als Datei vor. Bei getSharedPreferences gibst Du den Namen der zu verwendenden Datei an. Wenn Du also in der Register-Activity in eine Datei "user.txt" etwas hineinschreibst, dann musst Du in der MainActivity natürlich aus der Datei "user.txt" wieder lesen (und nicht aus Datei Y). D. h. in beiden Fällen wird getSharedPreferences "user.txt" als Parameter erhalten müssen.

Mit
Java:
editor.putString("inputID",userData);
schreibst Du in die Datei, dass unter dem Key "inputID" der Wert von userData abgelegt werden soll.

Dem entsprechend musst Du userData in der MainActivity wieder mit
Java:
String userData = sharedPreferences.getString("inputID");
aus der Datei laden.

Was sollen eigentlich die beiden Schleifen in Deinem Listener?
 
P

Panda9296

Bekanntes Mitglied
ok ich probiere das jetzt nochmal.
Ich gehe das jetzt Zeichen für Zeichen durch ich will das hinbekommen :D .
Die sind warscheinlich dafür verantwortlich, dass das programm bei click abstürtzt... Ich habe ja den String zerlegt. Hab ihn in ein Array gespeichert und den String des array wollte ich index für index auslesen und ihn splitten und dannach wollte ich von userAddributs den index 2 und 3 prüfen, da ich weiß dass das die email und das passwort ist und die wollte ich auch überprüfen.

ich dachte das ist dann wie eine Hashmap du hast dann den key also den userID und fragst die User ab und du prüfst pro user also pro Account das passwort und die email bzw soll er ja den key berücksichtigen... Ich dachte ich vergleiche dann die Eingabe mit eingespeicherten Passwort und wenn das true ist hat er zugang zu seinem Account der Freezer Manager ist so eine konfigurationsstelle da soll dann entweder die bestehende Gefriertruhe ausgewählt werden oder eine neue mit neuem Setup erstellt werden können. Ich brauch die Daten auch, um natürlich einer gefriertruhe mehrere User zuzuordnen und ich kenne zwar sqllite aber ich möchte die app unabhängig von einer datenbank entwickeln. Ich mache eine Umschulung zum Fachinformatiker für Anwendungsentwicklung. Ich hab ende nächsten Jahres Prüfung und wir arbeiten gerade die Grundlagen von Java durch. Ich habe mir aber vorher das Wissen vom Buch "Hallo Schrödinger" beigebracht. Nur da sind es halt nur Übungen. Wenn man dann so ein ganzes Projekt hat, ist es für mich zumindest, was vollkommen anderes.
 
P

Panda9296

Bekanntes Mitglied
ich habe auch ein Lastenheft erstellt ^^ Fürs Pflichtenheft war ich zu faul und habe skizzierte Klassendiagramme gemacht. Vielleicht war das ein Fehler, aber ich dachte mir, wenn ich eh schauen muss wie es in Android geht, bringt der Plan auch nix. So wollte ich Stück für Stück einbinden.
Code:
package de.miguel.frozzenlist.frozzenbetaa;

public class Product {


    private String name;
    private int ProductID;
    private String typ;
    private int frozzenDate;


    public void setName(String name) {
        this.name = name;
    }

    public int getProductID() {
        return ProductID;
    }

    public void setProductID(int productID) {
        ProductID = productID;
    }

    public String getTyp() {
        return typ;
    }

    public void setTyp(String typ) {
        this.typ = typ;
    }


    @Override
    public String toString() {
        return "Product [name=" + name + ", ProductID=" + ProductID + ", typ=" + typ + "]";
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ProductID;
        result = prime * result + frozzenDate;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((typ == null) ? 0 : typ.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Product other = (Product) obj;
        if (ProductID != other.ProductID)
            return false;
        if (frozzenDate != other.frozzenDate)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        if (typ != other.typ)
            return false;
        return true;
    }
}
Code:
package de.miguel.frozzenlist.frozzenbetaa;

import java.util.ArrayList;

public class Tray {

    private int trayID;
    private ArrayList<Product> productList= new ArrayList<Product>();

    public Tray(int trayID, int userID,ArrayList<Product>productList) {
        this.trayID = trayID;
        this.productList=productList;
    }
    public void showTray() {
        toStringForListInformation();
    }
    public void addProduct(ArrayList<Product>productList, Product product){

        productList.add(product);
    }
    public void removeProduct(int input,ArrayList<Product>productlist) {
        toStringForListInformation();
        toStringQuestionWhichIndexRemove();
        productlist.remove(input);
    }
    public int getTrayID() {
        return trayID;
    }
    public void setTrayID(int trayID) {
        this.trayID = trayID;
    }
    public ArrayList<Product> getProductList() {
        return productList;
    }
    public void addProduct(String name,String typ,int productID) {
        Product product =new Product();
        product.setName(name);
        product.setTyp(typ);
        product.setProductID(productID);
        productList.add(product);
    }
    public void removeProduct(int input) {
        for(int i=0;i<productList.size();i++) {
            while(input==i) {
                productList.remove(i);
            }toStringMessageOutOfBons();
        }
    }
    public void changeProduct(int input,String name,String typ,int productID) {
        for(int i=0;i<productList.size();i++) {
            while(input==i) {
                productList.get(i);
                Product product =new Product();
                product.setName(name);
                product.setTyp(typ);
                product.setProductID(productID);
                productList.add(i, product);


            }toStringMessageOutOfBons();
        }
    }

    @Override
    public String toString() {
        return "Tray [trayID=" + trayID + ", productList=" + productList + "]";
    }
    @SuppressWarnings("unused")
    public String toStringForListInformation() {

        for(int i=0;i<productList.size();i++) {

            return "Listung des Faches: "+trayID+"\n "+productList.get(i);
        }
        return "Keine Liste vorhanden";
    }
    public static String toStringQuestionWhichIndexRemove() {
        return "Welchen Index wollen Sie löschen?";
    }
    public static String toStringMessageOutOfBons() {
        return "Falsche Eingabe. Deine Eingabe ist außerhalb der Indexreichweite!\nVersuche es nochmal";
    }
}

Code:
package de.miguel.frozzenlist.frozzenbetaa;

import java.util.ArrayList;

public class Freezer {

    ArrayList<Tray>tray= new ArrayList<Tray>();
}
 
P

Panda9296

Bekanntes Mitglied
Ich habe kein Discord. Stell Dir die SharedPreferences einfach als Datei vor. Bei getSharedPreferences gibst Du den Namen der zu verwendenden Datei an. Wenn Du also in der Register-Activity in eine Datei "user.txt" etwas hineinschreibst, dann musst Du in der MainActivity natürlich aus der Datei "user.txt" wieder lesen (und nicht aus Datei Y). D. h. in beiden Fällen wird getSharedPreferences "user.txt" als Parameter erhalten müssen.

Mit
Java:
editor.putString("inputID",userData);
schreibst Du in die Datei, dass unter dem Key "inputID" der Wert von userData abgelegt werden soll.

Dem entsprechend musst Du userData in der MainActivity wieder mit
Java:
String userData = sharedPreferences.getString("inputID");
aus der Datei laden.

Was sollen eigentlich die beiden Schleifen in Deinem Listener?
So ich bin alles durchgegangen und eigentlich sollte es funktionieren. Das Speichern geht zumindest. Nur wenn ich da jetzt überprüfen möchte, ob das selbe drinnen steht im Array,dann kommt ein false. Theoretisch müsste das Laden aber funktionieren. ÄHM und das Array hab ich auch überarbeitet :D und ich habe die Klasse User auch nochmal was hinzugefügt aber erst die Wesentlichen Sachen zu dem Thread:

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 userData;

    @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",0);
                SharedPreferences.Editor editor= sharedPreferences.edit();
                userData=sharedPreferences.getString("inputID",userData);



                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()) {
                    String userAccount[]=userData.split("#");

                    if (userAccount[2].contains(email)&&userAccount[3].contains(passwort)){
                       Intent intent = new Intent(MainActivity.this,
                               FreezerManagment.class);
                       startActivity(intent);
                   }
                    else{
                        System.out.println("fail");
                    }

                }
            }
        });

    }
     //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= new Counter();



        //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());


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


        inputID=counter.getId();
        this.user.setUserID(inputID);
        userData= this.user.toString();
        sharedPreferences= this.getSharedPreferences("userID",0);
        SharedPreferences.Editor editor=sharedPreferences.edit();
            editor.putString("inputID",userData);
            editor.commit();
            if (editor.commit()){
            inputAnswer.setText("Regristration erfolgreich!");

            Intent intent= new Intent(this,MainActivity.class);
            startActivity(intent);
        }
            else{
                inputAnswer.setText("Regristration nicht erfolgreich!");
            }



    }
}
Also es wurde aufjedenfall gespeichert und ich rufe es diesmal genauso auf wie du es geschrieben hast...hoffe ich sonst klappe ich den pc zu und schmeiß ihn ins Wasser :D
 
mihe7

mihe7

Top Contributor
So sieht der Code in der MainActivity auf jeden Fall schon mal wesentlich besser aus (den Editor brauchst Du dort aber nicht).

Schauen wir uns das mal an:

Java:
                    String userAccount[]=userData.split("#");

                    if (userAccount[2].contains(email)&&userAccount[3].contains(passwort)){
                       Intent intent = new Intent(MainActivity.this,
                               FreezerManagment.class);
                       startActivity(intent);
                   }
                    else{
                        System.out.println("fail");
                    }

User#toString, hast Du geschrieben, sieht so aus:
Java:
public String toString() {
        return "#" + userID + "#" + userName + "#" + passwort + "#" + email
                + "#";
    }

In dem Fall wäre der Benutzername bei Index 2 und E-Mail bei Index 4. Du vergleichst aber oben email mit Index 2, also dem Benutzernamen. Entweder musst Du oben den Index auf 4 ändern, oder mit email wird in der MainActivity der Benutzername abgefragt. Das wäre, was mir gerade auffallen würde.
 
P

Panda9296

Bekanntes Mitglied
So sieht der Code in der MainActivity auf jeden Fall schon mal wesentlich besser aus (den Editor brauchst Du dort aber nicht).

Schauen wir uns das mal an:

Java:
                    String userAccount[]=userData.split("#");

                    if (userAccount[2].contains(email)&&userAccount[3].contains(passwort)){
                       Intent intent = new Intent(MainActivity.this,
                               FreezerManagment.class);
                       startActivity(intent);
                   }
                    else{
                        System.out.println("fail");
                    }

User#toString, hast Du geschrieben, sieht so aus:
Java:
public String toString() {
        return "#" + userID + "#" + userName + "#" + passwort + "#" + email
                + "#";
    }

In dem Fall wäre der Benutzername bei Index 2 und E-Mail bei Index 4. Du vergleichst aber oben email mit Index 2, also dem Benutzernamen. Entweder musst Du oben den Index auf 4 ändern, oder mit email wird in der MainActivity der Benutzername abgefragt. Das wäre, was mir gerade auffallen würde.
nein hatte ich leider schon überprüft ich habe den Code so geändert:
Code:
public String toString() {
        return "#" + userID + "#" + userName + "#" + email + "#" + passwort
                + "#";
}
somit ist der Code ja bei 2 und 3 weil es ja bei 0 anfängt zu zählen
 
P

Panda9296

Bekanntes Mitglied
So sieht der Code in der MainActivity auf jeden Fall schon mal wesentlich besser aus (den Editor brauchst Du dort aber nicht).

Schauen wir uns das mal an:

Java:
                    String userAccount[]=userData.split("#");

                    if (userAccount[2].contains(email)&&userAccount[3].contains(passwort)){
                       Intent intent = new Intent(MainActivity.this,
                               FreezerManagment.class);
                       startActivity(intent);
                   }
                    else{
                        System.out.println("fail");
                    }

User#toString, hast Du geschrieben, sieht so aus:
Java:
public String toString() {
        return "#" + userID + "#" + userName + "#" + passwort + "#" + email
                + "#";
    }

In dem Fall wäre der Benutzername bei Index 2 und E-Mail bei Index 4. Du vergleichst aber oben email mit Index 2, also dem Benutzernamen. Entweder musst Du oben den Index auf 4 ändern, oder mit email wird in der MainActivity der Benutzername abgefragt. Das wäre, was mir gerade auffallen würde.
So sieht der Code in der MainActivity auf jeden Fall schon mal wesentlich besser aus (den Editor brauchst Du dort aber nicht).

Schauen wir uns das mal an:

Java:
                    String userAccount[]=userData.split("#");

                    if (userAccount[2].contains(email)&&userAccount[3].contains(passwort)){
                       Intent intent = new Intent(MainActivity.this,
                               FreezerManagment.class);
                       startActivity(intent);
                   }
                    else{
                        System.out.println("fail");
                    }

User#toString, hast Du geschrieben, sieht so aus:
Java:
public String toString() {
        return "#" + userID + "#" + userName + "#" + passwort + "#" + email
                + "#";
    }

In dem Fall wäre der Benutzername bei Index 2 und E-Mail bei Index 4. Du vergleichst aber oben email mit Index 2, also dem Benutzernamen. Entweder musst Du oben den Index auf 4 ändern, oder mit email wird in der MainActivity der Benutzername abgefragt. Das wäre, was mir gerade auffallen würde.
neuer Tag neues Glück ich denke ich habe den Fehler gefunden. Es liegt an sharedPreferences ich habs einigermaßen endlich verstanden. sharedPreferences.getString soll meinen Key holen und der key hat mein user data ich hatte das vorher allerdings so gelöst:
Code:
userData=sharedPreferences.getString("inputID",userData );
macht natürlich keinen Sinn... da kann nix gespeichert sein ich habe das gelöscht. Du hattest ja gemeint, dass der Code so geholt wird

Code:
userData=sharedPreferences.getString("inputID");
und warum auch immer zeigt er einen fehler mit dem Key an also "inputID" ich hatte es aber überprüft und der key ist dieser inputID key^^ er erwartet also einen zweiten parameter weil die fehlermeldung dann weg ist. Was erwartet er den? Einen String? Welchen?
 
P

Panda9296

Bekanntes Mitglied
Danke für deine Antwort und deine Einbringung in das Themenfeld. Allerdings wurde es schonmal gepostet im Verlauf und so wie ich das sehe, habe ich die Anweisungen komplett befolgt. Ich weiß nicht worauf du aus bist^^. Wenn du so nett wärst, mir nochmal erklärst was genau das Problem ist, wäre ich sehr dankbar, da ich mir das jetzt seit heute um 11 anschaue und nicht genau weiß, warum du den Link gepostet hast^^. Wahrscheinlich wegen dem Laden? Weil das speichern funktioniert laut meiner kleinen Prüfung :D. Ich bin mir auch sicher, dass ich jede andere Weise egal wie du sie dir ausmalst durchprobiert habe, da ich seit dem Wochenende schon daran sitze.
 
T

thecain

Top Contributor
Da steht zum Beispiel für was der zweite Parameter ist.
und es steht auch, wenn du nur ein Preferences brauchst, kannst du es so aufrufen
Alternatively, if you need just one shared preference file for your activity, you can use the getPreferences() method:

Dann steht in der Doku auch, dass das zweite Attribut von getString null sein darf. (aber nicht weggelassen)

Dann steht da auch, dass es ein "getAll" gibt, womit du dir mal alles anzeigen lassen könntest, um zu schauen ob da überhaupt was geschrieben wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Daten vom Brustgurt bekommen? Android & Cross-Platform Mobile Apps 3
jmar83 Android Daten von "Activity A" nach "Activity B" umleiten? Android & Cross-Platform Mobile Apps 13
W Android Browser startet immer, bevor die Daten dafür geholt wurden Android & Cross-Platform Mobile Apps 15
J Android Server-Login Daten in der App sicherer hinterlegen? Android & Cross-Platform Mobile Apps 7
T Firestore Daten in Spinner Android & Cross-Platform Mobile Apps 0
L Android Daten von Webseite runterladen, die mit HTTP-Authentifizierung gesichert ist Android & Cross-Platform Mobile Apps 5
B Accelerometer daten umwandeln Android & Cross-Platform Mobile Apps 41
S Android Apk Daten auslesen Android & Cross-Platform Mobile Apps 3
G Android Daten in einer Datenbank speichern Android & Cross-Platform Mobile Apps 1
ATZENPOWER Android Probleme mit mobilen Daten via lte Android & Cross-Platform Mobile Apps 10
S Android Studio MySql Daten in Listview mit sub Item Android & Cross-Platform Mobile Apps 11
A Android Daten in der Cloud speichern (Google) Android & Cross-Platform Mobile Apps 1
K Unbekannte Menge von Daten (Strings oder Ints) an Activity übergeben Android & Cross-Platform Mobile Apps 0
K Android SQLite Query "WHERE _id in (X, Y, Z)" keine Daten Android & Cross-Platform Mobile Apps 6
M Anzeigen der Daten dauert zu lange - Progressdialog? Android & Cross-Platform Mobile Apps 5
K Android DialogFragment mit SimpleCursorAdapter: Auf Daten zugreifen? Android & Cross-Platform Mobile Apps 4
S Daten aus Android Gerät auslesen Android & Cross-Platform Mobile Apps 3
L Android Datei erstellen, Daten einspeichern und auslesen Android & Cross-Platform Mobile Apps 2
B Alle Daten gehen verloren, wenn die Displaysperre aktiviert wird? Android & Cross-Platform Mobile Apps 21
M Daten zwischen mehreren Activities Android & Cross-Platform Mobile Apps 2
M Daten zwischen Activities übergeben Android & Cross-Platform Mobile Apps 7
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
G Wie gebe ich dem DrawView die Daten mit? Android & Cross-Platform Mobile Apps 2
V App Daten in Java Applikation Android & Cross-Platform Mobile Apps 3
D Android Daten verwalten Android & Cross-Platform Mobile Apps 2
S Android binäre Daten zwischen Android und einem Java-Server Android & Cross-Platform Mobile Apps 5
M Android Von Smartphone auf Daten von Server zugreifen Android & Cross-Platform Mobile Apps 2
C Android Listen/Daten aus der SQLLite Datenbank darstellen Android & Cross-Platform Mobile Apps 2
L Android Einlesen und rausschreiben von Daten auf SD Android & Cross-Platform Mobile Apps 3
U Android Daten dauerhaft speichern? Android & Cross-Platform Mobile Apps 2
P Java ME benutzer daten speichern Android & Cross-Platform Mobile Apps 5
7 GPS-Daten auslesen auf Samsung SGH I900 Omnia Android & Cross-Platform Mobile Apps 3
X RMS - Will die Daten auf den PC kopieren Android & Cross-Platform Mobile Apps 3
B Daten in *.txt schreiben Android & Cross-Platform Mobile Apps 7
R Lesen und schreiben von Daten. Android & Cross-Platform Mobile Apps 2
K XDA Orbit: Auslesen der GPS Daten mit J2ME Android & Cross-Platform Mobile Apps 2
M Daten aus Jad-file auslesen Android & Cross-Platform Mobile Apps 2
O eingehende Daten speichern Android & Cross-Platform Mobile Apps 2
M App Programmierung: Thread starten und Variablenwerte oder Objekte mitgeben Android & Cross-Platform Mobile Apps 2
W Android Bestimmen von welchem Typ die Objekte in einem ArrayAdapter sind Android & Cross-Platform Mobile Apps 3
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
T Android Netzwerk - Objekte senden Android & Cross-Platform Mobile Apps 9
Bastifantasti Java ME Objekte in Java? Android & Cross-Platform Mobile Apps 3
N Wie kann ich mein Handy mit Java rooten? Android & Cross-Platform Mobile Apps 38
R Android App vom Handy dekompilieren Android & Cross-Platform Mobile Apps 4
D Android Android Apps direkt vom Handy aus programmieren? Android & Cross-Platform Mobile Apps 2
B Android App debugen auf Handy, Handy-Desktop auf PC anzeigen Android & Cross-Platform Mobile Apps 1
M Error beim drücken der Zurück-Taste am Handy Android & Cross-Platform Mobile Apps 2
G Auslesen von RFID mit dem Handy Android & Cross-Platform Mobile Apps 3
J Handy bootet nicht mehr richtig Android & Cross-Platform Mobile Apps 2
R Android Datenaustausch zwischen PC und Handy Android & Cross-Platform Mobile Apps 3
K Zeitstopp-App, immer dann aktiv, wenn Handy an - wie vorgehen? Android & Cross-Platform Mobile Apps 4
X Android Handy mit Eclipse verbinden Android & Cross-Platform Mobile Apps 1
T Android Handy in Eclipse einbinden Android & Cross-Platform Mobile Apps 34
A AVD läuft, Handy stüzt ab Android & Cross-Platform Mobile Apps 2
J Apps für Android programmieren - Android Handy notwendig oder reicht Simulator? Android & Cross-Platform Mobile Apps 3
A Handy mit Arduino verbinden Android & Cross-Platform Mobile Apps 4
B Java auf dem Handy Android & Cross-Platform Mobile Apps 5
E Java ME Installation auf Handy Android & Cross-Platform Mobile Apps 2
K Java ME Handy Java App die die Navigationstasten abfragt Android & Cross-Platform Mobile Apps 7
R Handy Java Version Android & Cross-Platform Mobile Apps 18
A Probleme mit Calendar auf dem Handy Android & Cross-Platform Mobile Apps 3
G GPS am Nokia Handy auslesen (Anfänger) Android & Cross-Platform Mobile Apps 15
C Export auf Handy Android & Cross-Platform Mobile Apps 2
O Entwickler für Java Anwendungen auf Handy gesucht! Android & Cross-Platform Mobile Apps 3
N Handy -PC Verbindung Android & Cross-Platform Mobile Apps 2
B Programme aufs Handy ziehn! Android & Cross-Platform Mobile Apps 2
C Programm nicht auf Handy installierbar (Zertifikatfehler) Android & Cross-Platform Mobile Apps 3
I Java Handy - mehrere Programme gleichzeitig Android & Cross-Platform Mobile Apps 8
Screen Java auf Handy,aber nicht Ja2Me ! Android & Cross-Platform Mobile Apps 3
Q einfaches Countdownprogramm Handy Android & Cross-Platform Mobile Apps 10
L HTML Seite anzeigen in Handy-Applikation Android & Cross-Platform Mobile Apps 5
B Java PC Spiel fürs Handy umwandeln? Android & Cross-Platform Mobile Apps 8
T Handy akzeptiert jar nicht Android & Cross-Platform Mobile Apps 12
2 Netbeans Handy Projekt läuft nicht auf Handy! Android & Cross-Platform Mobile Apps 3
G Bluetooth Verbindung zwischen Handy und PC Android & Cross-Platform Mobile Apps 5
M Symbol im Handy Android & Cross-Platform Mobile Apps 2
L Kann App auf Handy nicht ausführen Android & Cross-Platform Mobile Apps 5
Q Handy unterstützt format an Android & Cross-Platform Mobile Apps 18
W Java auf ein CECT Handy installieren Android & Cross-Platform Mobile Apps 6
G SMS über Handy SMS Interface versenden Android & Cross-Platform Mobile Apps 5
loadbrain sony ericsson handy, MIDP 2.0 Android & Cross-Platform Mobile Apps 6
A Java Programm auf Handy? Android & Cross-Platform Mobile Apps 2
S Handy als fernbedienung Android & Cross-Platform Mobile Apps 8
M Handy als Webcam Android & Cross-Platform Mobile Apps 18
R ME-Neuling: welches Prepaid-Handy kaufen? Android & Cross-Platform Mobile Apps 5
K Anwendung für Handy programmieren Android & Cross-Platform Mobile Apps 1
G Bildershow auf Handy Android & Cross-Platform Mobile Apps 2
luke86 Programm von Handy zu Handy weitergeben(NOKIA N70) Android & Cross-Platform Mobile Apps 3
B Textdatei auf Handy erstellen / lesen / schreiben? Android & Cross-Platform Mobile Apps 2
RawBit handy java comiler Android & Cross-Platform Mobile Apps 5
1 zugriff auf handy-microfon Android & Cross-Platform Mobile Apps 2
J J2ME Java Programm im Hintergrund auf Handy laufen lassen? Android & Cross-Platform Mobile Apps 2
G Programm auf handy installieren Android & Cross-Platform Mobile Apps 3
N Wie ist das mit der Handy API? Android & Cross-Platform Mobile Apps 2
K Programme für Handy erstellen Android & Cross-Platform Mobile Apps 3
K Handy Menüprogrammierung Android & Cross-Platform Mobile Apps 4
F Per Java zu Handy connecten Android & Cross-Platform Mobile Apps 5
J Handy-Spiel auf PC ausführen Android & Cross-Platform Mobile Apps 11
M Java-Programme für Handy auf Desktop-PC ausführen Android & Cross-Platform Mobile Apps 4

Ähnliche Java Themen

Anzeige


Oben