Anmelde Button mit Leben erfüllen

F

ForenDaddy

Neues Mitglied
0
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:
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:
Ruf mal zuerst setContentView(R.layout.main) auf, und dann erst den setOnClickListener für den Button.
 
  • Danke
Reaktionen: ForenDaddy
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.
 
ist genau das gleiche

ruf einfach als erste setContentView auf und alles funktioniert
 
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 ...
 
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.
 

Ähnliche Themen

MES
Antworten
10
Aufrufe
812
MES
MES
A
  • AnimaAngelo85
Antworten
1
Aufrufe
331
swa00
swa00
C
Antworten
8
Aufrufe
1.122
swa00
swa00
Zurück
Oben Unten