1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

getText ist...lustig

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Liamissimo, 08.03.2011.

  1. Liamissimo, 08.03.2011 #1
    Liamissimo

    Liamissimo Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2011
    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

    Beiträge:
    103
    Erhaltene Danke:
    7
    Registriert seit:
    13.11.2010
    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 bedankt sich.
  3. Liamissimo, 08.03.2011 #3
    Liamissimo

    Liamissimo Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2011
    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

    Beiträge:
    103
    Erhaltene Danke:
    7
    Registriert seit:
    13.11.2010
    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

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    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

    Beiträge:
    103
    Erhaltene Danke:
    7
    Registriert seit:
    13.11.2010
    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

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    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

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2011
    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

    Beiträge:
    41
    Erhaltene Danke:
    0
    Registriert seit:
    02.03.2011
    Integer.parseInt(String) würd auch gehen...
     

Diese Seite empfehlen