1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. ForenDaddy, 01.11.2011 #1
    ForenDaddy

    ForenDaddy Threadstarter Junior Mitglied

    Testumgebung: Android v2.2 im Emo-lator (kleines Wortspiel ;-)

    stehe momentan auf dem schlauch.
    ich versuche einem einfachen anmelde button, eine onclick funktion zuzuweisen.
    aber mein progrämmchen stürzt immer wieder ab.
    Fehlermeldung: "The application abc (process fcp.main) has stopped"

    aufbau ist ganz einfach:
    habe mit eclipse eine gui gebastelt, eingabefeld benutzername, eingabefeld passwort und ein anmelde button.
    die gui an sich funktioniert soweit schon mal. ist ja gott sei dank mit dem gui builder recht praktisch.

    bei der onclick funktion streikt aber mein programm.
    klammere ich die innere klasse aus, sehe ich meine gui, nur halt leider ohne funktion. sobald es wie unten steht, geht es schon wieder nicht.
    ich denke ich habe alles nach anleitung gemacht.
    (benutzer ist eine selbst erstellte Klasse)
    hier mal der code der mainactivity:
    Code:
    package fcp.main;
    
    import fcp.Logic.Benutzer;
    import fcp.Logic.FileCopy;
    import fcp.Logic.FCP_System;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            final Benutzer test = new Benutzer();
            test.fahrerNr = "123";
            test.passwort = "456";
            
            final Button anmelden = (Button) findViewById(R.id.buttonAnmelden);
            anmelden.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // bla bla bla
                }
            });
            setContentView(R.layout.main);
        }
    }
    hier die main.xml:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
    
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="@string/Fahrernr"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
    
    
    
    
        <EditText
            android:id="@+id/textfieldUsername"
            android:layout_width="600dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal" />
    
    
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="@string/Passwort"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
    
    
    
    
    
        <EditText
            android:id="@+id/textfieldPassword"
            android:layout_width="600dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:inputType="textPassword" >
    
            <requestFocus />
        </EditText>
    
    
        <Button
            android:id="@+id/buttonAnmelden"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="@string/Anmelden" />
    
    
    
        <Button
            android:id="@+id/buttonBeenden"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Beenden" />
    
    </LinearLayout>
     
    Zuletzt bearbeitet: 01.11.2011
  2. ForenDaddy, 01.11.2011 #2
    ForenDaddy

    ForenDaddy Threadstarter Junior Mitglied

    jetzt habe ich es auch noch mal mit android: onclick versucht.
    das funktioniert ja genauso wenig.
    irgendwie funktionieren viele der grundlagen beispiele überhaupt nicht.
    und das adt plugin ist nicht wirklich eine hilfe.

    ich habe jetzt meinem anmelde button diese zeile geschenkt:
    Code:
    android:onclick="login"
    und diese mehtode dafür definiert:
    Code:
    public void login(View view) {
            switch (view.getId()) {
                case R.id.buttonAnmelden:
                    // test
                    break;
            }
        }
    ausführen verweigert er, weil er onclick als fehler ansieht.
    error: "no resource identifier found for attribute 'onclick' in package 'android'"

    ich frage mich sowieso, wie er die methode login findet, wenn ich nicht die klasse bzw. activity angebe in der sie steht.
    ein clean hat auch nichts gebracht.
     
    Zuletzt bearbeitet: 01.11.2011
  3. Nebukad, 01.11.2011 #3
    Nebukad

    Nebukad Neuer Benutzer

    Ruf mal zuerst setContentView(R.layout.main) auf, und dann erst den setOnClickListener für den Button.
     
    ForenDaddy gefällt das.
  4. ForenDaddy, 01.11.2011 #4
    ForenDaddy

    ForenDaddy Threadstarter Junior Mitglied

    oh mann, das wars.
    ich nehme mal an, er erzeugt die main.xml zur laufzeit.
    und wenn ich dem button "anmelden" vor erzeugung eine funktion zuweise, greif android natürlich ins leere.

    kann mir aber trotzdem jemand verraten, warum onlick dann nicht geht?
    finde es ist eigentlich eine sehr schöne funktion, die mir das innere klassen gerangel ersparen könnte.
     
  5. swordi, 01.11.2011 #5
    swordi

    swordi Gewerbliches Mitglied

    ist genau das gleiche

    ruf einfach als erste setContentView auf und alles funktioniert
     
  6. Tom299, 02.11.2011 #6
    Tom299

    Tom299 Android-Experte

    dein onClick geht nicht, weil dein button vermutlich null ist. sowas findet man beim debuggen eigentlich schnell raus ;-)

    wie die anderen schon gesagt haben, entweder setContentView ganz oben benutzen oder halt zuerst inflaten, dann müßte es auch gehen ...
     
  7. ForenDaddy, 02.11.2011 #7
    ForenDaddy

    ForenDaddy Threadstarter Junior Mitglied

    debuggen geht nicht, weil onclick fehlerhaft ist.

    hier noch mal der button vollständig aus der "main.xml".
    Code:
    <Button
            android:id="@+id/buttonAnmelden"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="@string/Anmelden"
            android:onclick="login" />
    und wie man sehen kann ist onclick falsch geschrieben (onClick = richtig).
    aber da android das einem nicht sagt, tappt man da schön im dunkeln.

    insofern, problem gelöst.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung Freitag um 23:01 Uhr
[OFFEN] Probleme mit Action Floating Button Android App Entwicklung 27.05.2017
[ERLEDIGT] Buttontext per klick ändern Android App Entwicklung 14.03.2017
SnackBar Action Button wird nicht an den unteren Rand gesetzt Android App Entwicklung 07.03.2017
Der Zurück-Button wird nicht angezeigt Android App Entwicklung 23.01.2017
Mail von Button aus mit Standard-Mail-App senden Android App Entwicklung 21.01.2017
Button Titel bei Klick ändern Android App Entwicklung 17.01.2017
Button positioniert sich immer über Tastatur Android App Entwicklung 13.01.2017
App stürzt beim Button Klick ab Android App Entwicklung 12.01.2017
Buttonfarbe ständig wechseln Android App Entwicklung 06.01.2017
Du betrachtest das Thema "Anmelde Button mit Leben erfüllen" im Forum "Android App Entwicklung",