Ожидаемый приемник типа, но получил android.support.v7.widget.TintContextWrapper

Я много пробовал найти решение. Как нашел тот же вопрос, но у меня нет ответа, чего я хочу.

У меня есть следующий XML-файл:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/add_appointment_parent_layout" tools:context="com.potionowl.app.activity.AppointmentAddActivity"> <include layout="@layout/layout_toolbar"/> <LinearLayout android:layout_width="match_parent" android:orientation="vertical" android:padding="@dimen/padding_small" android:layout_margin="@dimen/padding_medium" android:layout_height="match_parent"> <android.support.v7.widget.AppCompatSpinner android:id="@+id/add_appointment_doctor_spinner" android:layout_width="match_parent" android:prompt="@string/string_select_doctor_patient" android:spinnerMode="dialog" android:layout_margin="@dimen/padding_medium" android:layout_height="wrap_content"/> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_margin="@dimen/padding_medium" android:layout_height="wrap_content" android:baselineAligned="false"> <android.support.design.widget.TextInputLayout android:id="@+id/add_appointment_date_title" android:layout_width="0dp" android:layout_weight="1" android:layout_margin="@dimen/padding_very_small" android:layout_height="wrap_content"> <EditText android:id="@+id/add_appointment_date_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/string_add_app_date_for_appointment" android:focusable="false" android:onClick="PickDate" android:singleLine="true" android:inputType="datetime"/> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:id="@+id/add_appointment_time_title" android:layout_width="0dp" android:layout_weight="1" android:layout_margin="@dimen/padding_very_small" android:layout_height="wrap_content"> <EditText android:id="@+id/add_appointment_time_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/string_add_app_time_for_appointment" android:focusable="false" android:onClick="PickTime" android:singleLine="true" android:inputType="datetime"/> </android.support.design.widget.TextInputLayout> </LinearLayout> <android.support.design.widget.TextInputLayout android:id="@+id/add_appointment_symptoms_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/padding_medium"> <android.support.design.widget.TextInputEditText android:id="@+id/add_appointment_symptoms_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLines="5" android:gravity="start" android:hint="@string/string_add_app_symptoms" android:lines="5"/> </android.support.design.widget.TextInputLayout> <android.support.v7.widget.AppCompatButton android:layout_width="wrap_content" android:layout_gravity="center" style="@style/Base.Widget.AppCompat.Button.Colored" android:layout_margin="@dimen/padding_medium" android:onClick="addAppointmentButtonClick" android:layout_height="wrap_content" android:text="@string/apply_for_appointment"/> </LinearLayout> </LinearLayout> 

У меня возникают ошибки:

 05-10 23:27:16.942 13455-13455/com.potionowl.app E/AndroidRuntime: FATAL EXCEPTION: main Process: com.potionowl.app, PID: 13455 java.lang.IllegalArgumentException: Expected receiver of type com.potionowl.app.activity.AppointmentAddActivity, but got android.support.v7.widget.TintContextWrapper at java.lang.reflect.Method.invoke(Native Method) at android.view.View$DeclaredOnClickListener.onClick(View.java:4456) at android.view.View.performClick(View.java:5207) at android.view.View$PerformClick.run(View.java:21168) at android.os.Handler.handleCallback(Handler.java:746) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 

Я не знаю, почему это происходит. Есть ли решение? Спасибо.

Это связано с тем, как AppCompat раздувает ваш макет. Попробуйте добавить программный прослушиватель onClick к своим кнопкам, а не делать это в XML.

Об этом сообщается в Google Code . Это потому, что вы используете кнопки AppCompat.

Вместо этого вы можете использовать аннотации butterknife

 @OnClick(R.id.IdForAppCompatButton) public void doAction() {doSomething();} 

Мне удалось зарегистрировать слушателя в текущем классе DialogFragment:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { dialogView = inflater.inflate(/*your layout*/, container, false); dialogView.findViewById(R.id.close_button).setOnClickListener(this); return dialogView; } @Override public void onClick(View v) { //Handle the button click event here } 
Intereting Posts
Как отключить заполнение на TextInputLayout? Фильтры ADT Logcat исчезают и перестают работать Не получать связанные с SD-картой намерения моему широковещательному приемнику Идентификатор регистрации равен нулю от gcm в android 2.3.3, 2.3.5, но он не является нулевым и работает в android 2.3.4, 4.0.4 Нет ответа от удаленного клиента: ошибка при передаче файла с использованием asmack Как получить растровое изображение с URL-адресом в андроиде? Как изменить текст панели действий и свойства фона? Как отобразить текст «Загрузка …» при извлечении элементов для ListView Собственный опыт использования Facebook через браузер Выровнять к самому большому элементу в RelativeLayout Как я могу изменить –android-платформу в Qt Creator, чтобы не быть андроидом – 1 в режиме отладки? Как передать форматированную строку даты из моего DatePickerFragment? Android RecyclerView с GridLayoutManager делает диапазон элементов несколькими рядами Android-строки, созданные ароматами Gradle, объявили недостающие переводы линией Spannable RecyclerView, например Snapchat-Discover