2016-05-10 8 views
5

Widziałem, że było kilka podobnych pytań, ale odpowiedzi na te nie pomogły mi do tej pory. Pełne błąd:Jak rozwiązać błąd: Nie można znaleźć metody onClick (View) w rodzicu lub przodku Kontekst dla Androida: 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'

Klasa (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()); 
    } 

} 

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> 

Dodałem aktywność do pliku AndroidManifest.xml. Mam podobne działania, które działają w taki sam sposób i nie mam żadnych problemów z tymi ...

Czy ktoś widzi coś, w czym czegoś brakuje lub popełniłem błąd?

+0

Twój komunikat błędu odnosi się do 'AppCompatButton'. Nie używasz 'AppCompatActivity'. – CommonsWare

+0

Próbowałem coś przed wysłaniem, przepraszam. Zmodyfikowałem powyższy kod, aby odzwierciedlić mój obecny kod. W przypadku obu opcji nie działa to przy okazji. – Peter

+0

Twój błąd nadal mówi AppCompatButton, ale twoje pytanie nie zawiera jednego –

Odpowiedz

1

Miałem ten sam problem iw moim przypadku zmieniłem Button w XML na android.support.v7.widget.AppCompatButton i zadziałało.

Kod z błędem:

<Button 
     .... /> 

Fixed Kod:

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

Musisz zmienić 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> 
Powiązane problemy