So I have simple button in fragment, and I have an exception while clicking it. Fragmens shows up just fine.
Fragment code:
public void onApplyButtonPressed(View view) {
System.out.println("Apply button clicked");
// viewToFilterData();
// if (mListener != null) {
// mListener.onFiltersApplyButtonPressed(userData);
// }
}
XML layout of fragment
<Button
android:id="@+id/fragment_filters_apply_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:onClick="onApplyButtonPressed"
android:text="@string/fragment_filters_apply_button" />
And how I attach my fragment in my main activity:
FiltersFragment filtersFragment = FiltersFragment.newInstance(userData);
getSupportFragmentManager().beginTransaction().add(R.id.activity_main_filters_page, filtersFragment).commit();
Can anyone see why this error happens?
java.lang.IllegalStateException: Could not find method onApplyButtonPressed(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'fragment_filters_apply_button'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
PS:
Using the same method as consumer to View.OnClickListener#onClick(View)
works just fine. Something is wrong with method lookup in current context.