Hier ist es meine BindingAdapterAndroid BindingAdapter error.NonExistentClass
@InverseBindingMethods({
@InverseBindingMethod(type = RecyclerView.class, attribute = "lastAdapter", method = "getLastAdapter"),
})
public class RecyclerViewBindingAdapter {
@BindingAdapter(value = {"lastAdapter"}, requireAll = false)
public static void setLastAdapter(RecyclerView view, LastAdapter adapter) {
view.setAdapter(adapter);
}
@InverseBindingAdapter(attribute = "lastAdapter")
public static LastAdapter getLastAdapter(RecyclerView view) {
return (LastAdapter) view.getAdapter();
}
}
I RecyclerView Abhängigkeit von meinem gradle hinzugefügt haben:
compile "com.android.support:recyclerview-v7:25.3.1"
Hier ist, wie ich in meinem Layout verwenden:
<android.support.v7.widget.RecyclerView
app:lastAdapter = "@{viewModel.adapter}"
... />
Ich habe die Bindungsvariablen viewModel bereits nach dem Aufblasen dieses Layouts gesetzt. Aber immer, wenn ich meine Codes laufen, gradle zeigt immer die folgenden Fehler
Error:(48, 34) Cannot find the setter for attribute 'app:lastAdapter' with parameter type error.NonExistentClass on android.support.v7.widget.RecyclerView.
ich dieses Problem lösen kann, indem jeden app:lastAdapter
von meinen Layouts dann sauber zu entfernen und neu zu erstellen, neu zu schreiben diese app:lastAdapter
attibutes dann wieder Projekt neu, funktioniert alles einwandfrei.
Das ist keine bequeme Lösung.
Wie sieht Ihre variable Linie aus? Und was ist der 'Adapter' in Ihrem ViewModel? –
Hi George, 'adapter' ist ein Objekt aus der LastAdapter Klasse hier ist es ' var adapter = LastAdapter (Daten, BR.item) .map (R.layout.menu_item) ' –
Ihr BindingAdapter dauert a 'LastAdapter', aber der Adapter scheint ein anderer Typ zu sein. Lies ich das richtig? –