我已經實現了RecyclerView顯示一些領域表數據。我已經通過從RealmRecyclerViewAdapter擴展來創建適配器。甚至認爲我在表中有3行(我通過結果調試進行檢查)沒有出現在列表中。我正在使用'io.realm:android-adapters:2.1.0'
適配器和Realm 3.7.2爲什麼我的域回收視圖不顯示任何數據?
這是我的代碼。
適配器類。
public class UserListAdapter extends RealmRecyclerViewAdapter<User,UserListAdapter.ViewHolder> {
public UserListAdapter(@Nullable OrderedRealmCollection<User> data, boolean autoUpdate) {
super(data, autoUpdate);
setHasStableIds(true);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.user_list_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
User user = getItem(position);
holder.home.setText(user.getUid());
holder.name.setText(user.getName());
holder.home.setText(user.getHouse().getName());
if(user.isStatus()) {
holder.status.setText("Active");
}else{
holder.status.setText("Inactive");
}
}
@Override
public long getItemId(int index) {
return getItem(index).getUid();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
@BindView(R.id.column_id)
TextView id;
@BindView(R.id.column_name)
TextView name;
@BindView(R.id.column_house)
TextView home;
@BindView(R.id.status_button)
Button status;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
itemView.setOnClickListener(this);
status.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.status){
//TODO: create interface and add method tho trigger when status click
}else{
//TODO: create interface and add method tho trigger when item click
}
}
}
}
代碼段,用於設置適配器
try(Realm realm = Realm.getDefaultInstance()){
RealmResults<User> users = realm.where(User.class).findAll();
listAdapter = new UserListAdapter(users,true);
recyclerView.setAdapter(listAdapter);
recyclerView.addItemDecoration(new RecyclerViewDividerVertical(2));
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
}
我能有CONVER RealmResults<User>
中ArrayList<User>
和實施正常RecyclerView適配器和完成它。但據我所知,RealmRecyclerViewAdapter
將導致數據更改時自動更新結果數據。但我也沒有100%清楚。任何人都可以解釋這是如何工作的?謝謝。
你是對的。添加鏈接將有助於未來的讀者https://github.com/realm/realm-android-adapters/blob/master/adapters/src/main/java/io/realm/RealmRecyclerViewAdapter.java – Raghunandan
請,我仍然不得到它。我應該在哪裏改變?以及如何在我的Adapter構造函數中使用OrderedRealmCollection Nullable以及示例中的那個不是。 –