我想使用类扩展领域对象作为常规类,但是在我的getFilter()中有异常
ThrowingException 8,从不正确的线程访问的领域。在/Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsResults.cpp第157行,。已引发异常:从不正确线程访问的领域。在/Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsResults.cpp第157行
这是我的适配器
List<ProductRealm> productsList, productsFiltered;
Context context;
public ProductAdapter(List<ProductRealm> productsList, Context context) {
this.productsList = productsList;
this.context = context;
}
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
if (charString.isEmpty()) {
productsFiltered = productsList;
} else {
List<ProductRealm> filteredList = new ArrayList<>();
for (ProductRealm row : productsList) {
if (row.getName().toLowerCase().contains(charString.toLowerCase())) {
filteredList.add(row);
}
}
productsFiltered = filteredList;
}
FilterResults filterResults = new FilterResults();
filterResults.values = productsFiltered;
return filterResults;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
notifyDataSetChanged();
}
};
return filter;
}这个在我的碎片里
viewModel.productsList.observe(this, new Observer<List<ProductRealm>>() {
@Override
public void onChanged(@Nullable List<ProductRealm> productRealms) {
productAdapter = new ProductAdapter(viewModel.productsList.getValue(), getContext());
rvProduct.setAdapter(productAdapter);
}
});视图模型
public MutableLiveData<List<ProductRealm>> productsList = new MutableLiveData<>();
RealmResults<ProductRealm> results = realm.where(ProductRealm.class).findAll();
productsList.setValue(results);发布于 2018-04-29 11:54:31
在将对象更改为unmanaged领域对象后,可以使用扩展unmanaged的类作为常规对象。
这可以使用copyFromRealm方法实现,如文档https://realm.io/docs/java/latest/api/io/realm/Realm.html#copyFromRealm-E-中所描述的那样。
https://stackoverflow.com/questions/50086086
复制相似问题