getText().toString() ergibt immer den selben Wert

  • Antworten:11
Siras96
  • Forum-Beiträge: 11

03.02.2014, 21:31:20 via Website

Ich habe ein Problem, dass wenn ich ein editText Feld auslesen möchte:
1LayoutInflater inflater = getActivity().getLayoutInflater();
2View aView = inflater.inflate(R.layout.fragment_licence, null);
3EditText editText = (EditText) aView.findViewById(R.id.editText);
4editText.setText(name);

Mir dies immer den Wert ergibt, der seit Start des Fragments im editText steht. Wenn ich nun den Text im editText ändere, zeigt es mir diese Änderung zwar an, wird jedoch nicht übernommen wenn ich den oben stehenden Code ausführe.
Was kann ich tun?

Vielen Dank für eure Antworten

Antworten
impjor
  • Forum-Beiträge: 1.793

03.02.2014, 21:46:29 via App

Das ist auch logisch, da du immer wieder neu das Layout inflatest und so immer wieder neu eine View mit EditText erstellst und dessen Wert hast du nicht geändert.

Lade das Layout doch in deiner onCreate mit setContentView() und hohle eine Referenz auf den EditText mit findViewById()

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Siras96
  • Forum-Beiträge: 11

03.02.2014, 21:49:03 via Website

Dies wollte ich Anfangs auch so lösen, jedoch ergab sich das Problem, dass wenn ich es ohne diesen Zusatz mit dem Inflater löse, es dann eine Java Nullpointer Exception ergibt. Wie kann ich dies verhindern?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.02.2014, 21:56:37 via App

geht es nicht im onCreate mit
setContentView(R.Id.fragmentLayout)
?
Was sagt logcat und wo tritt die null pointer exception auf?

Benutzt du Fragments in deiner App?

— geändert am 03.02.2014, 21:57:28

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Siras96
  • Forum-Beiträge: 11

03.02.2014, 21:58:39 via Website

Wenn ich dies in die onCreate rein tue, dann startet mir das Fragment gar nicht mehr und die ganze App crasht. Und ja, die ganze App ist auf Fragements aufgebaut.

Die Null pointer exception tritt laut logcat bei
1editText.setText(name);
auf.

— geändert am 03.02.2014, 21:59:30

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.02.2014, 22:06:04 via App

Hast du für jedes deiner Fragments eine Eigene Klasse?
Und wie wechselst du die Fragments?
Normalerweise solltest du das EditText trotzdem mit dem anderen Wert funktionieren.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Siras96
  • Forum-Beiträge: 11

03.02.2014, 22:09:29 via Website

Ja jedes Fragment hat seine eigene Klasse und Java Datei.
Die Fragments werden über das Menü gewechselt und zwar mit folgendem Code:
1case 3:
2
3 getSupportFragmentManager().beginTransaction()
4 .replace(R.id.content_frame, new Licence())
5 .commit();
6 break;

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.02.2014, 22:13:39 via App

Nach deinem Code muss ed Funktionieren.
Gint es auf dem Layout auch eine editText mit dem selben Namen?

— geändert am 03.02.2014, 22:13:50

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Siras96
  • Forum-Beiträge: 11

03.02.2014, 22:14:43 via Website

Nein, es gibt in der ganzen App nur ein editText...

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.02.2014, 22:19:58 via App

Dann neuer Vorschlag alles mal nurchdebuggen und Layout und tedit variablen anschauen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Siras96
  • Forum-Beiträge: 11

03.02.2014, 22:22:47 via Website

Was meinst du damit?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.02.2014, 23:14:52 via App

Also in eclipse ein Breakpoint setten und die App im debugmodus ausführen.
tut bei google unter android debugging with eclipse

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten