nicht gefunden. Haben Sie ein Problem mit Bindungsadapter. Hier ist der Code:Der Setter für Attribut '{Attribut}' mit Parametertyp {Typ} in {Ansicht}
@BindingAdapter(value = {"menu", "menuItemClick"}, requireAll = false)
public static void setMenu(View view, int menu, PopupMenu.OnMenuItemClickListener listener) {
if (menu == 0 || menu == -1) {
return;
}
view.setOnClickListener(v -> {
PopupMenu popup = new PopupMenu(v.getContext(), view);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(menu, popup.getMenu());
popup.setOnMenuItemClickListener(listener);
popup.show();
});
}
Blick in das Layout-Hierarchie:
<FrameLayout
android:layout_width="@dimen/fields_edit_hint_length"
android:layout_height="52dp"
android:layout_gravity="end"
app:menu="@{item.getTypesMenuRes()}"
app:menuItemClick="@{item}"
app:visible="@{item.value.length!= 0 && !item.isFieldLocked()}"/>
Methode getTypesMenuRes gibt int, wie in Adapter Bindung
public int getTypesMenuRes() {
switch (type()) {
case PhoneNumber:
return R.menu.edit_fields_phone_types;
case Email:
return R.menu.edit_fields_email_types;
default:
return -1;
}
}
aber ich bekomme Zeit erroe kompilieren:
Error:(67, 29) Cannot find the setter for attribute 'app:menu' with parameter type int on android.widget.FrameLayout.
Ich benutze View anstelle von FrameLayout innerhalb von BindingAdapter, aber es ist erlaubt, weil es von FrameLayout (und ich tat es viele Male vorher), und ich absolut nicht Grund und Grund dieser erroe. Kannst du mir etwas empfehlen?
Update:
Ich Wählverbindungen
app:menu="@{item.getTypesMenuRes()}"
app:menuItemClick="@{item}"
und bekommen den gleichen Fehler mit App: menuItemClick. Versucht, requiredAll = false
zu entfernen, hat aber auch nicht geholfen