HelloWorld-Problem

N

Newling

Neues Mitglied
0
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>
 
Abgesehen davon, dass du im Developer-Forum eher die richtigen Leute triffst kenn ich mich da nicht so aus.
 
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.
 
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
 
Bei eingabe.addtextchangedlistener fehlt auch ein new.
 
off topic:

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

Ähnliche Themen

W
  • WuDiDong
Antworten
3
Aufrufe
767
jogimuc
J
S
Antworten
4
Aufrufe
995
Sempervivum
S
R
Antworten
3
Aufrufe
1.618
Ritartet
R
Zurück
Oben Unten