2016-05-10 15 views
5

Ho visto che ci sono state alcune domande simili ma le risposte a coloro che non mi hanno aiutato finora. L'errore completo:Come risolvere l'errore: Impossibile trovare il metodo onClick (Visualizza) in un genitore o antenato Contesto per Android: onClick

java.lang.IllegalStateException: Could not find method onClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button_random'

La classe (StartActivity.java):

public class StartActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_start); 
    } 

    public void onClick(View v) { 
     Log.d("DEBUG", "CLICKED " + v.getId()); 
    } 

} 

L'XML (activity_start.xml):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Random Game" 
     android:id="@+id/button_random" 
     android:layout_gravity="center_horizontal" 
     android:onClick="onClick" /> 
</LinearLayout> 

ho aggiunto l'attività su AndroidManifest.xml. Ho attività simili che funzionano allo stesso modo e non ho alcun problema con quelle ...

Qualcuno vede qualcosa in cui mi manca qualcosa o ho fatto un errore?

+0

Il tuo messaggio di errore si riferisce a 'AppCompatButton'. Non stai usando 'AppCompatActivity'. – CommonsWare

+0

Ho provato qualcosa prima di postare, scuse. Ho modificato il codice sopra per riflettere il mio codice attuale. Con entrambe le opzioni non funziona btw. – Peter

+0

Il tuo errore dice ancora AppCompatButton, ma la tua domanda non include uno –

risposta

1

Ho avuto lo stesso problema e nel mio caso, ho cambiato Button in XML a android.support.v7.widget.AppCompatButton e ha funzionato.

Codice di errore:

<Button 
     .... /> 

codice fisso:

<android.support.v7.widget.AppCompatButton 
     .... /> 
0

È necessario modificare android.support.v7.widget.AppCompatButton

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.AppCompatButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Random Game" 
     android:id="@+id/button_random" 
     android:layout_gravity="center_horizontal" 
     android:onClick="onClick" /> 
</LinearLayout> 
Problemi correlati