Impossible de trouver une méthode surClick (View) dans l'activité

Le clic de bouton dans la structure de gonflage échoue au moment de l'exécution car la méthode ne peut pas être trouvée. E / AndroidRuntime (921): java.lang.IllegalStateException: Impossible de trouver une méthode surClick (View) dans l'activité mais, si vous cliquez sur le bouton de la mise en page principale, travaillez bien. Qu'est ce que j'ai mal fait?

MISE À JOUR: changer le code … stil fail … ajouter un journal des erreurs Je souhaite que tous mes boutons soient traités dans la méthode ome.

  • Obtenir des coordonnées à partir du matériel GPS
  • Supprimer la barre de titre de l'application Android
  • HttpEntity est obsolète sur Android maintenant, quelle est l'alternative?
  • Initialiser MapFragment par programme avec Maps API v2
  • Simuler Android SMS / Call on USB device
  • Stratégie de stratégie primaire Android (application distribuée)
  • Principale classe d'activité

    package com.android.insertview; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Toast; public class InsertViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /*LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); ViewGroup parent = (ViewGroup)findViewById(R.id.main_view); inflater.inflate(R.layout.volume_control, parent);*/ LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = vi.inflate(R.layout.volume_control, null); View insertPoint = findViewById(R.id.main_view); ((ViewGroup) insertPoint).addView(v, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT , ViewGroup.LayoutParams.WRAP_CONTENT)); } public void btnclick(View v) { // TODO Auto-generated method stub Context context = getApplicationContext(); Toast toast = Toast.makeText(context, "This is Toast Notification", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } } 

    Main.xml

     <?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" android:id="@+id/main_view"> </LinearLayout> 

    Structure de gonflage

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/service_button_container_background" android:id="@+id/volume_view"> <Button android:id="@+id/volume_up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_volume_up" android:onClick="btnclick" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_volume_mute_off" android:onClick="btnclick"/> <Button android:id="@+id/volume_down" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_volume_down" android:onClick="btnclick"/> </LinearLayout> 

    Journal d'erreur

     03-19 15:31:45.184: W/dalvikvm(1071): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 03-19 15:31:45.184: E/AndroidRuntime(1071): Uncaught handler: thread main exiting due to uncaught exception 03-19 15:31:45.194: E/AndroidRuntime(1071): java.lang.IllegalStateException: Could not find a method genclick(View) in the activity 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.View$1.onClick(View.java:2020) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.View.performClick(View.java:2364) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.View.onTouchEvent(View.java:4179) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.widget.TextView.onTouchEvent(TextView.java:6541) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.View.dispatchTouchEvent(View.java:3709) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-19 15:31:45.194: E/AndroidRuntime(1071): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 03-19 15:31:45.194: E/AndroidRuntime(1071): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 03-19 15:31:45.194: E/AndroidRuntime(1071): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.os.Handler.dispatchMessage(Handler.java:99) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.os.Looper.loop(Looper.java:123) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.app.ActivityThread.main(ActivityThread.java:4363) 03-19 15:31:45.194: E/AndroidRuntime(1071): at java.lang.reflect.Method.invokeNative(Native Method) 03-19 15:31:45.194: E/AndroidRuntime(1071): at java.lang.reflect.Method.invoke(Method.java:521) 03-19 15:31:45.194: E/AndroidRuntime(1071): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 03-19 15:31:45.194: E/AndroidRuntime(1071): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 03-19 15:31:45.194: E/AndroidRuntime(1071): at dalvik.system.NativeStart.main(Native Method) 03-19 15:31:45.194: E/AndroidRuntime(1071): Caused by: java.lang.NoSuchMethodException: genclick 03-19 15:31:45.194: E/AndroidRuntime(1071): at java.lang.ClassCache.findMethodByName(ClassCache.java:308) 03-19 15:31:45.194: E/AndroidRuntime(1071): at java.lang.Class.getMethod(Class.java:1014) 03-19 15:31:45.194: E/AndroidRuntime(1071): at android.view.View$1.onClick(View.java:2017) 03-19 15:31:45.194: E/AndroidRuntime(1071): ... 22 more 

    MISE À JOUR 2:

    Ok, si je le fais, je peux gérer tous les boutons dans une seule méthode genericClick ()

     <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/front_end" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- Main --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@drawable/service_button_container_background" > <ImageButton android:id="@+id/radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_radio" android:clickable="true" android:onClick="genericClick" /> <ImageButton android:id="@+id/player" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_player" android:onClick="genericClick" /> <ImageButton android:id="@+id/navi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_navigation" android:onClick="genericClick" /> </LinearLayout> <!-- Volume controls --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/volume_controls" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:background="@drawable/service_button_container_background" android:orientation="vertical" > <ImageButton android:id="@+id/volume_up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_volume_up" android:onClick="genericClick" /> <ImageButton android:id="@+id/volume_mute" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_volume_mute_off" android:onClick="genericClick" /> <ImageButton android:id="@+id/volume_down" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_volume_down" android:onClick="genericClick" /> </LinearLayout> <!-- Radio controls --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/radio_controls" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignRight="@+id/main_view" android:layout_marginRight="100dp" android:background="@drawable/service_button_container_background" android:visibility="invisible" > <ImageButton android:id="@+id/radio_preset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="genericClick" android:background="@drawable/button_menu"/> <ImageButton android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_rewind" android:onClick="genericClick" /> <ImageButton android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_play" android:onClick="genericClick" /> <ImageButton android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_forward" android:onClick="genericClick" /> </LinearLayout> <!-- Radio Info --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/radio_info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/radio_controls" android:layout_alignLeft="@+id/main_view" android:layout_marginLeft="100dp" android:background="@drawable/service_button_container_background" android:orientation="vertical" android:visibility="invisible"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="FM" android:textSize="18.0px" /> <TextView android:id="@+id/preset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:textColor="#ffd6d6d6" android:textSize="18.0px" /> <TextView android:layout_width="10.0dip" android:layout_height="wrap_content" android:text=" " android:textSize="18.0px" /> <TextView android:id="@+id/frequency" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="108.0" android:textColor="#ffd6d6d6" android:textSize="18.0px" /> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/title" android:layout_width="195.0dip" android:layout_height="24.0dip" android:text="Русское радио" android:textColor="#ffd6d6d6" android:textSize="18.0px" /> </LinearLayout> </LinearLayout> </RelativeLayout> 

  • Exception mortelle: java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV23
  • La classe interne du fragment devrait être statique
  • Java.lang.NoClassDefFoundError: com.google.ads.AdView
  • Google Map a signé des erreurs de clé api dans Android
  • Dans une action snackbar, comment puis-je être sûr de pouvoir supprimer en permanence un enregistrement supprimé par soft de la base de données?
  • Pourquoi les Android préfèrent-ils les cours statiques?
  • 5 Solutions collect form web for “Impossible de trouver une méthode surClick (View) dans l'activité”

    Supprimez l'annotation @Override . Consultez la documentation officielle pour Android: onClick – dans leur cas, la méthode de traitement selfDestruct (View).

    Mise à jour: comme l'ont suggéré les autres, vous ne devriez pas utiliser un tel nom générique pour votre méthode de gestionnaire d'événements – "onClick" est trop générique. Que faire si vous avez 10 boutons? Essayez quelque chose comme "onClickLoginButton", "onClickSaveBtn", etc. Je pense que vous ne pouvez pas utiliser "onClick" comme nom pour votre méthode de gestionnaire, car View.OnClickListener a la méthode "onClick", vous devez donc modifier le nom de toute façon.

     <Button android:id="@+id/volume_up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_volume_up" android:onClick="handleVolumeUp" /> 

    Et dans votre classe d'activité

     public void handleVolumeUp(View view) { // TODO Auto-generated method stub } 

    Supprimez la mise en œuvre d'OnClickListener afin que la définition de votre classe devienne:

     public class InsertViewActivity extends Activity 

    UPDATE2: Si vous souhaitez que tous les boutons soient traités par un auditeur à un clic, faites quelque chose comme ça:

     @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn1 = (Button)findViewById(R.id.btn1); btn1.setOnClickListener(btnListener); Button btn2 = (Button)findViewById(R.id.btn2); btn2.setOnClickListener(btnListener); Button btn3 = (Button)findViewById(R.id.btn3); btn3.setOnClickListener(btnListener); } private OnClickListener btnListener = new OnClickListener() { public void onClick(View v) { //do the same stuff or use switch/case and get each button ID and do different //stuff depending on the ID } }; 

    Vous ne supprimez pas une méthode, alors supprimez @Override

    Pour éviter cela à l'avenir, vous pouvez créer votre propre annotation pour déclarer vos méthodes qui sont ajoutées dans la mise en page Android XML.

    Voici un tutoriel de publication de blog:

    http://blog.blundell-apps.com/using-annotations-for-android-xml-onclick-visibility/

    Le problème dans les thèmes de la mise en page pour Android 5.X L'activité principale n'a pas de thème d'étiquette dans le layout.xml. L'autre existe et c'est une erreur pour le système d'exploitation Android.

    La solution est ici: android 5 and onClick in xml layout

    En bref: 1) enlevez le sheme de toutes les mises en page; 2) ajouter une étiquette avec un sheme correct en manifeste

    J'ai essayé pour les téléphones android 5.X – ça marche.

    Votre deuxième activité est-elle le manifeste.xml?

    Vous devez ajouter toutes vos activités ici. Voir le code ci-dessous Change SecondActivity dans votre activité. Et définissez le nom du package si votre activité se trouvait

     <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="PackageName.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="PackageName.SecondActivityName" > </activity> </application> 

    Et vous devriez noter un autre: public void onclick_method () {votre logique;}. Le studio ne vous donne aucun indice. Je viens d'écrire comme ça et de perdre beaucoup de temps pour trouver la réponse, enfin j'ai constaté que la bonne méthode est comme ceci: public void onclick_method ( View view ) {your logic;} alors, n'oubliez pas d'oublier le paramètre dans le support!

    Blockquote

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.