Imansible trovare un metodo inClick (Visualizza) nell'attività

Il clic del button nel layout di gonfiaggio non riesce a runtime poiché il metodo non può essere trovato. E / AndroidRuntime (921): java.lang.IllegalStateException: Imansible trovare un metodo onClick (Visualizza) nell'attività ma, se fai clic sul button dal layout principale, funziona bene. Cosa ho fatto di sbagliato?

UPDATE: cambiare codice … stile fail … aggiungere log errore Voglio avere tutti i miei pulsanti sono stati elaborati in metodo ome.

  • Android 6.0 Marsmallow BLE: Parametri di connessione
  • Spostare lo schermo a destra sul clic del menu; come facebook
  • Chiama la function PHP da android?
  • Come usare Stetho con Volley?
  • Come disegnare un'overlay su un SurfaceView utilizzato da Camera su Android?
  • Android - AlertDialog styling
  • class di attività principale

    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> 

    gonfiando il layout

     <?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> 

    registro degli errori

     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 

    UPDATE 2:

    ok, se lo faccio, posso gestire tutti i pulsanti click in un metodo 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> 

  • Perché aumenta la memory heap quando rilancia un'attività?
  • Cattura della camera senza anteprima in Android 2.2
  • utilizzare startActivityForResult da non attività
  • Domanda sul metodo onUpgrade android
  • Percorso Android di filter intento pathPattern
  • differenza e quando utilizzare getApplication (), getApplicationContext (), getBaseContext () e someClass.this
  • 5 Solutions collect form web for “Imansible trovare un metodo inClick (Visualizza) nell'attività”

    Rimuovere l'annotazione @Override . Controlla la documentazione ufficiale per android: onClick – nel loro caso il metodo "selfDestruct (View)".

    Aggiorna: come suggerisce gli altri, non dovresti utilizzare una denominazione generica per il tuo metodo del gestore degli events – "onClick" è troppo generico. Cosa succede se si dispone di 10 pulsanti? Provi qualcosa come "onClickLoginButton", "onClickSaveBtn" ecc. Penso che non puoi utilizzare "onClick" come nome per il tuo metodo di gestione uniforms, perché View.OnClickListener ha un metodo "onClick", quindi devi cambiare il nome.

     <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" /> 

    E nella tua class Attività

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

    Rimuovere l'implementazione di OnClickListener in modo che la definizione della class diventi:

     public class InsertViewActivity extends Activity 

    UPDATE2: se si desidera gestire tutti i pulsanti da un click listener fare un esempio:

     @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 } }; 

    Il tuo non superare un metodo in modo da rimuovere @Override

    Per evitare ciò in futuro, puoi creare un'annotazione per dichiarare i methods aggiunti nel layout di Android XML.

    Ecco un tutorial blog post:

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

    Il problema nei themes di layout per Android 5.X L'attività principale non ha il tema di tag in layout.xml altri ha e è un errore per il sistema operativo Android.

    La soluzione è qui: android 5 e onClick in layout xml

    In breve: 1) rimuovi schema di tag da tutti i layout; 2) aggiungere il tag con schema corretto nel manifesto

    Ho provato per i telefoni android 5.X – funziona.

    La tua seconda attività nel manifesto.xml?

    Devi aggiungere al tuo attività lì dentro. Vedere codice sotto Modifica SecondActivity nella tua attività. Impostare il nome del pacchetto come se si trovava la tua attività

     <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> 

    e si dovrebbe notare un altro: public void onclick_method () {la tua logica;}. lo studio non ti dà un suggerimento. Ho appena scritto così e perduto molto tempo per trovare la risposta, alla fine ho scoperto che il metodo giusto è così: public void onclick_method ( visualizza vista ) {la tua logica;} in modo da non dimenticare il parametro nella parentesi!

    blockquote

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.