Frage

Die Frage ist ganz einfach.Aber ich möchte wissen, wo genau machen wir unsere Verweise auf die gui-Elemente?Wie in der ist der beste Ort, um zu definieren:

final EditText edit =  (EditText) findViewById(R.id.text_xyz);
 edit.getText.tostring();

Wenn ich versuche, es zu tun innerhalb der Standard oncreate() ich bekomme null-Werte.So für die beste Praxis, tun u empfehlen, eine separate Klasse für die Vermittlung dieser bereits definierten gui-Elemente main.xml.Von hier aus können wir rufen verschiedene Methoden, diese Elemente wie gettext oder settext?

War es hilfreich?

Lösung

Nun, es hängt von Ihren Bedürfnissen ab.Sehr oft halte ich meine Referenzen, um widgets in der Aktivität (wie eine Klasse Felder) - und legen Sie Sie in onCreate Methode.Ich denke, das ist eine gute Idee
Wahrscheinlich der Grund für Ihre null-Werte ist, dass Sie versuchen, zu nennen findViewById() bevor Sie contentView() in Ihrem onCreate() Methode, überprüfen Sie bitte, dass.

Andere Tipps

Die Schnellste Lösung für Ihr problem, das ich glaube, ist, dass Sie einfach sind, fehlende Klammern, die auf Ihrem getText.Fügen Sie einfach () zu edit.getText().toString() und das sollte es lösen

Wenn Sie es tun, bevor die setContentView() Aufruf der Methode werden dann die Werte null.

Dies wird im Ergebnis null:

super.onCreate(savedInstanceState);

Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();

setContentView(R.layout.main_contacts);

während dies gut funktionieren:

super.onCreate(savedInstanceState);
setContentView(R.layout.main_contacts);

Button btn = (Button)findViewById(R.id.btnAddContacts);
String text = (String) btn.getText();
String fname = ((EditText)findViewById(R.id.txtFirstName)).getText().toString();
String lname = ((EditText)findViewById(R.id.txtLastName)).getText().toString();
((EditText)findViewById(R.id.txtFullName)).setText(fname + " "+lname);

Legen Sie die folgenden nach der setContentView() Methode.

final EditText edit =  (EditText) findViewById(R.id.Your_Edit_ID);
String emailString = (String) edit.getText().toString();
Log.d("email",emailString);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top