Textfeld ansprechen

  • Antworten:7
  • Bentwortet
Addyk2
  • Forum-Beiträge: 21

28.11.2012, 16:21:02 via Website

Hallo zusammen!

Ich bin neu hier und habe vor kurzen mit der Android-Entwicklung angefangen.
Ich habe Eclipse installiert, das Java SDK und die nötigen Android "Packages".
Habe bereits eine erste App erstellt, die nur ein Textfeld und einen Button enthält und diese bereits erfolgreich auf mein Galaxy S2 übertragen :-)

Jetzt meine Frage: Ich habe in Eclipse ein neues Android-Projekt erstellt, und habe bei dem Graphical Layout ein Textfeld und einen Button hinzugefügt.
Das Textfeld heißt: @+id/editText1,
und der Button heißt: @+id/button1.

Wie kann ich folgendes Problem lösen: Bim Klick auf den Button soll der Inhalt des Textfeldes ausgelesen werden, und einer variable zugewiesen werden.

Habe schon viel versucht, aber es funktioniert nicht...

Vom Prinzip her kann ich doch eine Variable deklarieren, und dann über variable1=text1; den Inhalt zuweisen oder?

Und noch eine Frage: Muss ich bei Eclipse für jede neue Klasse, die ich erstellen will, diese in einer neuen Datei anlegen?

Vielen Dank euch schonmal im voraus! :-)

Addy

Antworten
Mark
  • Forum-Beiträge: 10

28.11.2012, 17:04:42 via Website

im OnClickListener des Buttons:

1String str = textfeld.getText().toString();

Neue Klassen müssen nicht unbedingt in neuen Dateien sein, wenn Du alle Klassen in die gleiche Datei schreibst wird aber alles recht schnell unübersichtlich.

Antworten
Addyk2
  • Forum-Beiträge: 21

28.11.2012, 17:19:24 via Website

Vielen Dank :-)

Wenn ich das so mache, erhalte ich folgende Fehlermeldung: textfeld cannot be resolved.
Auch wenn ich textfeld in deinem Beispiel durch text1 ersetzt, bleibt die Fehlermeldung: text1 cannot be resolved.

Hier ein Auszug aus meiner activity_main.xml:

<EditText
android:id="@+text1/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="56dp"
android:ems="10" >
<requestFocus />
</EditText>

Kannst du mir helfen, warum tritt dieser Fehler auf?

Antworten
Mark
  • Forum-Beiträge: 10

28.11.2012, 17:25:43 via Website

Du musst das Textfeld initalisieren, also in der Activity

private EditText mText1;

in onCreate:

mText1 = (EditText) findViewById(R.id.text1);

im Layout:
android:id="@+id/text1"

im listener dann:
String str = mText1.getText.....

— geändert am 28.11.2012, 17:27:40

Antworten
Addyk2
  • Forum-Beiträge: 21

28.11.2012, 17:41:05 via Website

Vielen Dank, jetzt gehts :-)

Antworten
Gelöschter Account
  • Forum-Beiträge: 74

06.03.2013, 20:09:11 via Website

Hab auch mal versucht, den Code genauso auszuführen. Bei mir steht nur immer unikale Variable Or Field. Muss ich die Variable irgendwo vorher noch Mals definieren?

Antworten
Timo D.
  • Forum-Beiträge: 182

07.03.2013, 17:46:07 via Website

Du ermittelst eine Layoutkomponente via findViewById(R.id.name) und kannst diese direkt weiterverarbeiten. Da brauchst du eigentlich keine Variable, außer du verwendest die Komponente mehrfach. Du musst natürlich immer noch entsprechend casten.

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

Antworten