Impossible de lier onClick xml sur une méthode dans mon activité
-
27-09-2019 - |
Question
J'ai le bouton ci-dessous déclaré dans mon main.xml
<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 j'ai 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é la reconstruction du projet dans mon IDE et ont également redémarré l'émulateur, mais même erreur réapparaît. J'ai suivi la documentation sur les développeurs Android du site, et je » 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
La solution
auditeurs clic XML ont été ajoutés dans Android 1.6. Vérifiez votre AndroidManifest pour vérifier que votre version SDK min est pas réglé sur petit gâteau (1,5, ou niveau de l'API 3) -
Si vous utilisez Eclipse avec le plugin ADT, vérifiez également des propriétés du projet> Android et vérifiez la cible de construction, assurez-vous qu'il Donut ou plus.
Autres conseils
Vous devez faire:
import android.view.View
au lieu de:
import view.View