我正在使用 Realm recyclerview。
compile ('com.github.thorbenprimke:realm-recyclerview:0.9.4') {
exclude module: 'realm-android'
}
与普通Realm v2.0.2(最新)一起使用
问题是当我现在运行代码时我得到了
java.lang.NoSuchMethodError: No virtual method getTable()Lio/realm/internal/TableOrView; in class Lio/realm/RealmResults; or its super classes (declaration of 'io.realm.RealmResults' appears in /data/data/pandapixl.nl.studiebarometer/files/instant-run/dex/slice-io.realm-realm-android-library-2.0.2_65286432d702dab629d2322a66a4c74d2cf9a7e2-classes.dex) at io.realm.RealmBasedRecyclerViewAdapter.(RealmBasedRecyclerViewAdapter.java:162) at io.realm.RealmBasedRecyclerViewAdapter.(RealmBasedRecyclerViewAdapter.java:129) at io.realm.RealmBasedRecyclerViewAdapter.(RealmBasedRecyclerViewAdapter.java:119)
我认为这是因为我使用的 Realm 版本比recyclerview支持的要高得多。有没有办法运行 2 个不同版本的 Realm,而不会在 APK 中出现重复错误?或者有没有一种方法可以自己创建一个回收 View 而不使用我现在正在使用的 View ?它不需要很花哨。一个基本的就可以了。
最佳答案
这就是realm/realm-android-adapters
项目是为了。
compile 'io.realm:android-adapters:1.3.0'
使用RealmRecyclerViewAdapter
。
编辑:
adapter = new RealmRecyclerViewAdapter<Dog, DogViewHolder>(getContext(), realm.where(Dog.class).findAllAsync(), true) {
@Override
public DogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new DogViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.view_dog_item, parent, false));
}
@Override
public void onBindViewHolder(DogViewHolder holder, int position) {
Dog dog = getData().get(position);
holder.bind(dog);
}
};
recyclerView.setAdapter(adapter);
或者
public class DogAdapter extends RealmRecyclerViewAdapter<Dog, DogViewHolder> {
public DogAdapter(Context context, RealmResults<Dog> results) {
super(context, results, true);
}
@Override
public DogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new DogViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.view_dog_item, parent, false));
}
@Override
public void onBindViewHolder(DogViewHolder holder, int position) {
Dog dog = getData().get(position);
holder.bind(dog);
}
};
关于java - 没有这样的方法依赖异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40162070/