getText ist...lustig

L

Liamissimo

Neues Mitglied
0
Hey,

man merkt, ich bin der "Neuling". Diese App um den Text in eine Zahl umzuwandeln und dann als Toast auszugeben scheitert an einem Crash, auch mit try und catch:
Code:
package com.vibdroid;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    int durat;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
        final EditText input = (EditText)findViewById(durat);
    	ImageButton andvib = (ImageButton)findViewById(R.id.vib_but);
        andvib.setOnClickListener(new View.OnClickListener() {			
			public void onClick(View v) {
				durat = Integer.getInteger(input.getText().toString());
				Toast newt = Toast.makeText(getApplicationContext(), input.getText().toString(), Toast.LENGTH_SHORT);
				newt.show();
			}
		});
    }
}

Also noch klarer gehts doch nicht?
 
Bist du dir sicher, dass
Code:
 final EditText input = (EditText)findViewById(durat);
richtig ist?
Der Integer durat wurde ja vorher noch kein Wert zugewiesen...

Ansonsten poste doch mal, was LogCat so ausgibt.
 
  • Danke
Reaktionen: Liamissimo
Oh man, es tut mir so leid. Mir ist das so peinlich. Geändert in
final EditText input = (EditText)findViewById(R.id.txt_input);
da die ID des TextEdit so lautet.
Crasht trotzdem...Also beim Drücken.
 
Ich weiß nicht warum du
Code:
durat = Integer.getInteger(input.getText().toString());
benutzt.
Ich persönlich würde
Code:
durat = Integer.valueOf(input.getText().toString());
nehmen.

Hast du LogCat? Könntest du dann eben posten worin der Fehler besteht?
 
Da unsere angestellte Telepathen gerade mal frei haben, wäre es hilfreich,
wenn du den Stacktrace von dem Crash posten würdest (meistens reich es
einfach aufmerksam zu lesen)
 
Habe gerade nochmal recherchiert. Also folgender Code produziert höchstwahrscheinlich eine NullPointerException:
Code:
durat = Integer.getInteger(input.getText().toString());

Integer (Java Platform SE 6)
 
Also, vorgehensweise:
- logcat lesen und verstehen
- passende Stelle im Code finden
- nachdenken
- getInteger ist statisch - also unschuldig in NPE
- input == null ?
- input.getText() == 0 ?
 
Also, Lösung ist valueOf nehmen anstatt getInteger. Wieso weiß ich nicht, beides bewirkt genau dasselbe laut Documentation. Ab jetzt werde ich immer Logcat posten, tut mir leid, bin noch nicht so drin im Debuggen, Lite-C kam ohne aus ;)
 
Integer.parseInt(String) würd auch gehen...
 

Ähnliche Themen

U
  • unerfahrenerAppEntwickler
Antworten
3
Aufrufe
705
swa00
swa00
K
Antworten
10
Aufrufe
1.508
swa00
swa00
Zurück
Oben Unten