HelloWorld-Problem

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Newling, 28.09.2011.

  1. Newling, 28.09.2011 #1
    Newling

    Newling Threadstarter Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    28.09.2011
    Guten Mittag,

    ich habe ein Problem mein erstes Android Programm welches ich mit Eclips erstellt habe stürtzt beim starten ab in der virtuellen Maschine aber ohne einen Fehler im Debug?
    Was mach ich falsch?

    Hier die einzelnen Dateien:
    HalloAndroidActivity.java
    Code:
    package com.thomaskuenneth.hallo;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.EditText;
    import android.view.View;
    import android.view.View.OnClickListener;
    
    public class HalloAndroidActivity extends Activity {
        
        private TextView nachricht;
        private EditText eingabe;
        private Button weiter_fertig;
        
        private boolean erster_klick;
        
        @Override 
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            nachricht = (TextView) findViewById(R.id.nachricht);
            eingabe = (EditText) findViewById(R.id.eingabe);
            weiter_fertig = (Button) findViewById(R.id.weiter_fertig);
            
            eingabe.addTextChangedListener(TextWatcher() {
    
                @Override
                public void onTextChanged(CharSequence s; int start; int before;
                        int count) {
                }
    
                @Override
                public void beforeTextChanged(CharSequence s; int start; int count;
                        int after) {
                }
    
                @Override
                public void afterTextChanged(Editable s) {
                    weiter_fertig.setEnabled(s.length() > 0);
                }
            });
            weiter_fertig.setEnabled(false);
            erster_klick = true;
            
            nachricht.setText(R.string.willkommen);
            weiter_fertig.setText(R.string.weiter);
            
            weiter_fertig.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    if(erster_klick) {
                        
                        nachricht.setText(getString(R.string.hallo,eingabe.getText()));
                        
                        eingabe.setVisibility(View.INVISIBLE);
                        weiter_fertig.setText(R.string.fertig);
                        erster_klick = false;
                    } else{
                        finish();            
                        
                    }
                }
            });
        }
    }
    r.java
    Code:
    package com.thomaskuenneth.hallo;
    
    public final class R {
        public static final class attr {
        }
        public static final class drawable {
            public static final int icon=0x7f020000;
        }
        public static final class id {
            public static final int eingabe=0x7f050001;
            public static final int nachricht=0x7f050000;
            public static final int weiter_fertig=0x7f050002;
        }
        public static final class layout {
            public static final int main=0x7f030000;
        }
        public static final class string {
            /**  Name der App 
             */
            public static final int app_name=0x7f040000;
            public static final int fertig=0x7f040004;
            /**   persönlicher Gruß 
             */
            public static final int hallo=0x7f040002;
            public static final int vorname_nachname=0x7f040005;
            /**  Beschriftungen für Schaltflächen 
             */
            public static final int weiter=0x7f040003;
            /**  Willkommensmeldung 
             */
            public static final int willkommen=0x7f040001;
        }
    }
    
    main.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView  
        android:id="@+id/nachricht"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        />
        
        <EditText
        android:id="@+id/eingabe"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/vorname_nachname"
        android:singleLine="true"
        android:inputType="textCapWords"
        />
        
        <Buttton
        android:id="@+id/weiter_fertig"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        />
    </LinearLayout>
    string.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!-- Name der App -->
        <string name="app_name">Hallo Android!</string>
         
         <!-- Willkommensmeldung -->
        <string name="willkommen">
        Guten Tag. Schön, dass Sie mich gestartet haben.
        Bitte verraten Sie mir Ihren Namen.</string> 
        
        <!--  persönlicher Gruß -->
        <string name="hallo">
        Hallo %1$s. Ich freue mich. Sie kennenzulernen.
        </string>
        
        <!-- Beschriftungen für Schaltflächen --> 
        <string name="weiter">Weiter</string>
        <string name="fertig">Fertig</string>       
        <string name="vorname_nachname">Vorname Nachname</string>
    </resources>
     
  2. neandertaler19, 28.09.2011 #2
    neandertaler19

    neandertaler19 Ehrenmitglied

    Beiträge:
    10,343
    Erhaltene Danke:
    1,927
    Registriert seit:
    28.01.2011
    Abgesehen davon, dass du im Developer-Forum eher die richtigen Leute triffst kenn ich mich da nicht so aus.
     
  3. Kranki, 29.09.2011 #3
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    Logcat ist dein Freund.

    Erste Frage: In den Methodenrümpfen von dem anonymen Textchangedlistener sind die Parameter durch Semikolon getrennt statt mit Komma. Das dürfte so nichtmal kompilieren.
     
  4. nijoX, 29.09.2011 #4
    nijoX

    nijoX Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    5
    Registriert seit:
    06.09.2011
    Moinsen,

    der fehler liegt in deinem main.xml file ... in Android gibt es leider kein Widget mit dem Name But"t"ton ;) nimm ein t raus und schon funzt die app.


    Edit:

    den addTextChangedListener solltest in der form ändern sonst wie Kranki schon sagte compiliert der Code nichtmal ;)

    Code:
            eingabe.addTextChangedListener(new TextWatcher() {
                
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    // TODO Auto-generated method stub
                    
                }
                
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                                              int after) {
                    // TODO Auto-generated method stub
                    
                }
                
                @Override
                public void afterTextChanged(Editable s) {
                    weiter_fertig.setEnabled(s.length() > 0);
                    
                }
            }); 
    
    MfG nijoX
     
  5. Kranki, 29.09.2011 #5
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    Bei eingabe.addtextchangedlistener fehlt auch ein new.
     
  6. Fonsi, 29.09.2011 #6
    Fonsi

    Fonsi Erfahrener Benutzer

    Beiträge:
    178
    Erhaltene Danke:
    15
    Registriert seit:
    08.07.2011
  7. swordi, 29.09.2011 #7
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    off topic:

    source code und kommentare in deutsch zu schreiben find ich echt voll daneben :)
     

Diese Seite empfehlen