1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Liamissimo, 08.03.2011 #1
    Liamissimo

    Liamissimo Threadstarter Neuer Benutzer

    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?
     
  2. Peter123, 08.03.2011 #2
    Peter123

    Peter123 Android-Hilfe.de Mitglied

    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.
     
    Liamissimo gefällt das.
  3. Liamissimo, 08.03.2011 #3
    Liamissimo

    Liamissimo Threadstarter Neuer Benutzer

    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.
     
  4. Peter123, 08.03.2011 #4
    Peter123

    Peter123 Android-Hilfe.de Mitglied

    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?
     
  5. ko5tik, 08.03.2011 #5
    ko5tik

    ko5tik Android-Experte

    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)
     
  6. Peter123, 08.03.2011 #6
    Peter123

    Peter123 Android-Hilfe.de Mitglied

    Habe gerade nochmal recherchiert. Also folgender Code produziert höchstwahrscheinlich eine NullPointerException:
    Code:
    durat = Integer.getInteger(input.getText().toString());
    Integer (Java Platform SE 6)
     
  7. ko5tik, 08.03.2011 #7
    ko5tik

    ko5tik Android-Experte

    Also, vorgehensweise:
    - logcat lesen und verstehen
    - passende Stelle im Code finden
    - nachdenken
    - getInteger ist statisch - also unschuldig in NPE
    - input == null ?
    - input.getText() == 0 ?
     
  8. Liamissimo, 08.03.2011 #8
    Liamissimo

    Liamissimo Threadstarter Neuer Benutzer

    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 ;)
     
  9. krackmoe, 08.03.2011 #9
    krackmoe

    krackmoe Junior Mitglied

    Integer.parseInt(String) würd auch gehen...
     
Du betrachtest das Thema "getText ist...lustig" im Forum "Android App Entwicklung",