text.getText().toString() gibt immer null raus

  • 6 Antworten
  • Letztes Antwortdatum
the|Gamer

the|Gamer

Erfahrenes Mitglied
100
Hallo,
ich schreibe gerade eine App, da ich nicht häufig für Android programmiere und ich auch sonst nicht so viel mit Java am Hut habe, habe ich mich ein wenig eingelesen...

Leider gibt mir folgender Code immer "null" raus was in eine NPE (Null Pointer Exception) führt... :cursing:

Code:
EditText text = (EditText)findViewById(R.id.mac_textbox);
        	    if(text.getText().toString().equals("")) {
        	    	Toast.makeText(MainActivity.this, "Error: MAC-Address must have 12 digits!", Toast.LENGTH_LONG).show();  
              	    }
        	    else 
        	    {
        	    String mac = text.getText().toString();

Die if schleife weglassen bringt das selbe Ergebnis!

Habe ich an dieser Stelle alles richtig gemacht?

Ich gebe den String mac dann als extra weiter:

Code:
myIntent.putExtra("mac", mac);

Und so hol ich ihn in der anderen Activity wieder:

Code:
Intent intent = getIntent();
	String mac = intent.getStringExtra("mac"); //fetch mac from first activity

danach frage ich den String ab und lass ihn mir in die Logcat schreiben:

Code:
setContentView(R.layout.activity_second);
		
		// tidy up mac adress
		Log.w("com.sindaccos.easyboxkeygen", "Mac Adress submitted: "+mac);

Im Logcat steht dann immer... "Mac Adress submitted: null"
Kann es daran liegen das ich mit zwei layouts arbeite?

Grüße
 
Zuletzt bearbeitet:
Den Text aus dem edit Text bekommst du schon als string, lass mal das toString weg
außerdem ist es bei der Anzahl der Stellen (deine if Abfrage) besser, mit .length zu arbeiten.

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Hallo,

Ich steh glaub ich auf dem Schlauch..

Ich mach jetzt aus "String mac = text.getText().toString()" einfach "String mac = text.getText()" ?

Das geht so leider nicht weil ich dann folgenden Fehler bekomme "Type mismatch: cannot convert from Editable to String"
 
blackfire185 schrieb:
Den Text aus dem edit Text bekommst du schon als string, lass mal das toString weg
außerdem ist es bei der Anzahl der Stellen (deine if Abfrage) besser, mit .length zu arbeiten.

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App

getText liefert kein String.


hast du ein setContentView()?
 
Hallo,
ja klar ganz am Anfang in der onCreate hab ich ein "setContentView(R.layout.activity_main);"

Danach kommt mein Button Listener

Code:
final Button button = (Button) findViewById(R.id.confirm_button);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

und danach kommt dann der Code von oben...

edit:

Ich habe jetzt unter

Code:
String mac = text.getText().toString();

noch ein

Code:
   Log.w("com.sindaccos.easyboxkeygen", "Debug: "+mac);

und siehe da ich bekomme den String 1A ausgegeben...

dann schau ich jetzt mal was da beim übergeben schief läuft!

edit2:

Okay! Ich hab den Fehler

myIntent.putExtra("mac", mac); muss natürlich VOR MainActivity.this.startActivity(myIntent);
 
Zuletzt bearbeitet:
Moin, ich würde an deiner Stelle die if Abfrage allerdings gleich so gestalten:
if(text.getText().toString().length() != 12) ;)

Greets,
Max
 
myeta schrieb:
if(text.getText().toString().length() != 12) ;)

Und vllt. noch ein trim() mit dazu und je nachdem, wie es der TO haben will nicht 12, sondern 17 - wegen der Trennzeichen zwischen den Bytes.
 
Zurück
Oben Unten