J'ai le bouton ci-dessous déclaré dans mon main.xmlImpossible de lier onClick xml sur une méthode dans mon activité
<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"
/>
Et je les méthodes suivantes dans l'activité ..
@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));
}
Je reçois l'erreur suivante lorsque je clique sur le bouton. J'ai essayé de reconstruire le projet dans mon IDE et j'ai également redémarré l'émulateur, mais la même erreur réapparaît. Je l'ai suivi la documentation sur le site Android developers, et je l'ai eu ce travail dans un projet distinct, je ne peux pas le faire travailler ici ..
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
Et les deux boutons sont "cassé"? Je vais deviner que c'est quelque chose qui va provoquer un visage-paume quand vous le trouvez. "android: onClick" est correctement mis en majuscule, et la signature de la méthode est correcte ... donc rien de plus évident à cet égard. Avez-vous d'autres boutons "Démarrer" dans ce manifeste? Dites dans une autre activité ou vue? Peut-être que les méthodes sont simplement dans la mauvaise classe. –
Peut-être une réponse un peu stupide, mais avez-vous importé le bon cours android.view.View? – Impression
La seule idée - est la méthode 'clickedStartService' dans 'com.jameselsey.observerpattern.MyApp'? –