ここでは、私が私のGradleにRecyclerView依存性を追加している私のBindingAdapterアンドロイド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();
}
}
です:
compile "com.android.support:recyclerview-v7:25.3.1"
ここでは、私は私のレイアウトで使用する方法である:
<android.support.v7.widget.RecyclerView
app:lastAdapter = "@{viewModel.adapter}"
... />
このレイアウトを拡張した後、私はすでにviewModelバインディング変数を設定しています。しかし、私は私のコードを実行するたびに、Gradleのは、常に次のエラーに
Error:(48, 34) Cannot find the setter for attribute 'app:lastAdapter' with parameter type error.NonExistentClass on android.support.v7.widget.RecyclerView.
を示し、私はその後、クリーンな私のレイアウトから任意のapp:lastAdapter
を削除することによってこの問題を解決し、再構築し、それらのapp:lastAdapter
attibutesは再びプロジェクトを再構築書き換えることができ、すべてが正常に動作します。
これは便利な解決策ではありません。
可変ラインはどのように見えますか? ViewModelの 'adapter'は何ですか? –
こんにちはGeorge、 'adapter'はLastAdapterクラスのオブジェクトです ここでは です。varアダプタ= LastAdapter(データ、BR.item).map(R.layout.menu_item) –
BindingAdapterは、 'LastAdapter'でも、アダプターは異なるタイプのように見えます。私はそれを正しく読んでいますか? –