Frage

Ich habe den folgenden Button habe in meinem main.xml erklärt

<Button android:name="@+id/clickedStartService"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:onClick="clickedStartService"
        android:text="Start"
        />
<Button android:name="@+id/clickedStopService"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:onClick="clickedStopService"
        android:text="Stop"
        />

Und ich habe die folgenden Methoden in der Tätigkeit ..

@Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
public void clickedStartService(View v)
    {
        startService(new Intent(this, LocalService.class));
    }

    public void clickedStopService(View v)
    {
        stopService(new Intent(this, LocalService.class));
    }

Ich erhalte die folgende Fehlermeldung, wenn ich auf die Schaltfläche klicken. Ich habe versucht, das Projekt in meinem IDE Wiederaufbau und habe auch den Emulator neu gestartet, aber die gleichen Fehler erneut angezeigt. Ich habe die Dokumentation auf den Android-Entwicklern Website, und ich‘ diese Arbeit in einem separaten Projekt habe hatte, ich kann einfach nicht bekommen es hier ..

arbeiten
ERROR/AndroidRuntime(335): FATAL EXCEPTION: main
        java.lang.IllegalStateException: Could not find a method clickedStartService(View) in the activity class com.jameselsey.observerpattern.MyApp for onClick handler on view class android.widget.Button
        at android.view.View$1.onClick(View.java:2059)
        at android.view.View.performClick(View.java:2408)
        at android.view.View$PerformClick.run(View.java:8816)
        at android.os.Handler.handleCallback(Handler.java:587)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:123)
        at android.app.ActivityThread.main(ActivityThread.java:4627)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:521)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.NoSuchMethodException
        at java.lang.Class.getDeclaredMethods(Native Method)
        at java.lang.ClassCache.getDeclaredPublicMethods(ClassCache.java:166)
        at java.lang.ClassCache.getDeclaredMethods(ClassCache.java:179)
        at java.lang.ClassCache.findAllMethods(ClassCache.java:249)
        at java.lang.ClassCache.getFullListOfMethods(ClassCache.java:223)
        at java.lang.ClassCache.getAllPublicMethods(ClassCache.java:204)
        at java.lang.Class.getMethod(Class.java:984)
        at android.view.View$1.onClick(View.java:2052)
        ... 11 more
War es hilfreich?

Lösung

XML-Klick Zuhörer wurden in Android 1.6 hinzugefügt. Überprüfen Sie Ihre AndroidManifest zu überprüfen, ob Ihre min SDK-Version nicht zu kleinen Kuchen eingestellt ist (1,5, oder API-Ebene 3) -

Wenn Sie Eclipse-verwenden mit der ADT-Plugin, überprüft auch Projekteigenschaften> Android und überprüfen Sie das Build-Ziel, stellen Sie sicher, dass es Donut oder höher.

Andere Tipps

Sie müssen tun:

import android.view.View

statt:

import view.View

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top