Hallo,
Ich habe folgendes Problem: Ich möchte den Inhalt einer Variable (der sich ja ändern kann) in den gleichen string einbinden.
Mein Quelltext:
Java:
publicvoidlogin(View view){Object uservorname;Object usernachname;EditText feld_email =(EditText)findViewById(R.id.emailet);EditText feld_passwort =(EditText)findViewById(R.id.passwortet);String a =newString("max.mustermann@example.de");String b =newString("passwort");if(feld_email.getText().toString().length()==0){return;}if(feld_passwort.getText().toString().length()==0){return;}if(feld_email.getText().toString().equals(a)&& feld_passwort.getText().toString().equals(b)){
uservorname="Max";
usernachname="Mustermann";Toast.makeText(getApplicationContext(),"Einen moment bitte...",Toast.LENGTH_LONG).show();setContentView(R.layout.angemeldet);}else{Toast.makeText(getApplicationContext(),"Bitte überprüfen sie ihre eingaben.",Toast.LENGTH_LONG).show();
feld_passwort.setText("");}}}
Es werden nacher noch mehr Benutzer als Max Mustermann hinzugefügt und ich möchte das sie auf der nächsten Seite, ein Text Feld haben wo der Vorname und eins wo der nachname des Users steht.
Ist das möglich?
Also es geht um eine Android App, Toast ist ein kleines Fenster, welches kurz aufleuchtet. Ähnlich wie ein popup.
Es geht um eine Anmeldung, dh. das man eine email-adresse und ein passwort eingibt, (in diesem fall: max.mustermann@example.de und passwort) und wenn man dann auf den login in button klickt wird die funktion login ausgeführt (das ist der quelltext).
Ich möchte, abgesehen von dem Popup, das die Variable "uservorname" den inhalt Max bekommt, dieser wert soll in einen String übergeben werden. Damit ich den String mit dem Textfeld auf der nächsten Seite verknüpfen kann.
Es soll dann sowas wie "Willkommen:" uservorname, usernachname; da stehen.
Ich weiß nur leider nicht wie ich das umsetzten kann.
Ich hoffe ich konnte deine Fragen beantworten.
also ich weiß nicht ob ich dein Problem richtig verstehe, aber benutze doch einfach eine HashMap für die Login/Passwort Kombinationen?
Nach der Eingabe frägst du ab ob zu dem Entsprechenden Loginnamen das Passwort stimmt und weißt einer String Variable den Loginnamen zu..
Ne HashMap ist einfach eine Collection wo du immer einen (eindeutigen) Key hast und dazu einen Wert (value). key und value können von unterschiedlichen Typen sein, in deinem Fall wäre aber String nicht verkehrt..
Ich würde es nur anders formulieren: "str" ist der Name der Variable. Jeder Variable hat einen Typ (hier: "java.lang.String") und einen Wert. Mit [c]String str = "Hello World"[/c] weist du der Variablen "str" vom Typ "String" den Wert "Hello World" zu. Hoffe das klärt einiges.
Wie kann ich denn zb. einem TextView sagen das er den Inhalt der Variable str anzeigen soll? Und muss ich str noch deklarieren und wenn in welchem datentyp? Sorry ich stehe grad mega auf dem Schlauch
Solche Aussagen sind wirklich erschreckend. Was du hier nicht weiß sind Grundlagen die man wissen sollte wenn man ernsthaft programmieren will! Ohne diese bringt sich eig jede weitere Hilfe wenig, weil eh nur herum probiert wird was an Code gepostet wird. Aber richtig verstanden wird es dann nicht.
Wie soll man einer Variable eine Inhalt geben können (oder einen Inhalt von einer Variable lesen können) wenn diese noch gar nicht deklariert ist? Ein Text ist ein String.
Es wirklich so das man Android erst anfangen sollte wenn man Java wenigstens mittelmäßig beherrscht. Man macht auch nicht erst den LKW Führerschein und dann den PKW.
Android ist eine Erweiterung zu Java, es passt einfach nicht gleich mit der Erweiterung anzufangen.
Was jetzt Strings Variablen und Datenstrukturen sind und wie man diese benutzt ist in vielen Programmiersprachen ähnlich. Deswegen sagt man auch wenn man ein paar Programmiersprachen kann lernt man neue relativ schnell.
Ich würde erst einmal mit C anfangen, danach dann Java lernen. Java ist zudem noch Objekt-Orientiert was zwar nicht all zu schwer zu verstehen ist, aber trotzdem erst nach den Grundlagen drankommt.
Zu deiner Frage: Die meisten Klassen bieten sogenannte getter und setter an zum auslesen oder setzen von Werten. Ich nehme mal an das es in der Klasse TextView bestimmt sowas wie:
Code:
TextView.setString("Hallo")
oder
Code:
TextView.setText("Hallo")
gibt. Wie der genaue setter heißt kann man in der Doku von der TextView-Klasse nachlesen.
Ich würde erst einmal mit C anfangen, danach dann Java lernen. Java ist zudem noch Objekt-Orientiert was zwar nicht all zu schwer zu verstehen ist, aber trotzdem erst nach den Grundlagen drankommt.
Jeder dem seinen. Bei uns in der Uni wurde das umgestellt. Früher wars erst C dann Java und C++. Jetzt ist es Java und dann C++. Die meisten Leute kommen nicht mehr klar wenn es bisschen komplizierter wird. Zumal auch alle mit einer IDE anfangen zu programmieren.
du machst eigentlich nichts anderes als dann die Eingabe deiner EditText felder mit den Daten aus der Hashmap zu vergleichen, und garantierst somit das erfolgreiche oder eben fehlgeschlagene Login, eigentlich ganz einfach .....
Strings vergeicht man übrigends mit equals()
wenn du ein Beispiel brauchst , lass es mich wissen
[TIPP]Normalerweise vergleicht man in solchen Fällen aber die Hashwerte der Daten, die sich üblicherweise in einer Datenbank befinden[/TIPP]