2017-06-06 7 views
3

私のアプリケーションの暗いまたは明るいテーマを選択する機能を追加した後、最近Could not find a method onClick(View) in the activity class android.support.v7.widget.TintContextWrapper for onClick handler on view class android.support.v7.widget.AppCompatButton例外が発生します。テーマを使用している場合、onClickのアクティビティクラスTintContextWrapperのメソッドonClick(View)を見つけることができませんでした

私はマニフェストにテーマを設定しませんし、私はBaseActivityを、次の使用:

public abstract class BaseActivity extends AppCompatActivity 
{ 
    private final int mLightTheme; 
    private final int mDarkTheme; 

    public BaseActivity(int lightTheme, int darkTheme) 
    { 
     mLightTheme = lightTheme; 
     mDarkTheme = darkTheme; 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     setTheme(MainApp.getPrefs().darkTheme() ? mDarkTheme : mLightTheme); 
     super.onCreate(savedInstanceState); 
    } 
} 

この問題を引き起こす可能性があります他に何任意のアイデア?私は4.2.2を実行しているデバイスから問題を持って...

に動作していないソリューション

  • 同様の問題は、私はそれを使用していないよ> = xmlファイルからthemeタグを削除することをお勧め私のxmlので、これは私

ためのケースではありませんスタックトレース

java.lang.IllegalStateException: Could not find a method onClick(View) in the activity class android.support.v7.widget.TintContextWrapper for onClick handler on view class android.support.v7.widget.AppCompatButton with id 'btBack' 
    at android.view.View$1.onClick(View.java:3602) 
    at android.view.View.performClick(View.java:4220) 
    at android.view.View$PerformClick.run(View.java:17513) 
    at android.os.Handler.handleCallback(Handler.java:800) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5455) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733) 
    at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NoSuchMethodException: onClick [class android.view.View] 
    at java.lang.Class.getConstructorOrMethod(Class.java:460) 
    at java.lang.Class.getMethod(Class.java:915) 
    at android.view.View$1.onClick(View.java:3595) 
    ... 11 more 
    java.lang.NoSuchMethodException: onClick [class android.view.View] 
    at java.lang.Class.getConstructorOrMethod(Class.java:460) 
    at java.lang.Class.getMethod(Class.java:915) 
    at android.view.View$1.onClick(View.java:3595) 
    at android.view.View.performClick(View.java:4220) 
    at android.view.View$PerformClick.run(View.java:17513) 
    at android.os.Handler.handleCallback(Handler.java:800) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5455) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733) 
    at dalvik.system.NativeStart.main(Native Method) 

答えて

8

android.support.v7.widget.AppCompatButtonからButtonに変更してください。

これはうまくいくでしょう。

その他の方法。

ClickイベントにはアクティビティsetOnClickListenerを使用できます。

関連する問題