问题描述
限时送ChatGPT账号..我在列表视图中使用游标适配器.我打算使用内容解析器来获取光标.现在我改变了主意,给它一个学习 Realm 的机会.
I am using cursor adapter for my list view. I was planning to use content resolvers to get a cursor. Now i changed my mind to give it a chance to learn Realm.
如何使用领域获得 光标" 对象?顺便说一句,我也很感激提供一些片段来对光标进行排序.
How can i get "Cursor" object by using realm? By the way, i would also be appreciate give a few snippet to sort cursor.
谢谢.
final class Contact extends RealmObject {
private CharSequence mName;
public CharSequence getName() {
return mName;
}
public void setName(CharSequence name) {
this.mName = name;
}
}
final class ContactListAdapter extends CursorRecyclerViewAdapter<ContactListAdapter.ContactHolder> implements View.OnClickListener {
private OnContactClickListener mListener;
public ContactListAdapter(Context context, Cursor cursor) {
super(context, cursor);
}
@Override
public ContactHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = getLayoutInflater().inflate(R.layout.cell_contact, parent, false);
ContactHolder contactHolder = new ContactHolder(itemView);
contactHolder.mContactPhotoImageView.setOnClickListener(this);
return contactHolder;
}
@Override
public void onBindViewHolder(ContactHolder viewHolder, Cursor cursor) {
viewHolder.mNameTextView.setText("Emre Akturk");
int position = cursor.getPosition();
viewHolder.mContactPhotoImageView.setImageResource(R.mipmap.ic_launcher);
viewHolder.mContactPhotoImageView.setTag(position);
}
@Override
public int getItemCount() {
return 5;
}
public void setOnContactClickListener(OnContactClickListener callback) {
this.mListener = callback;
}
@Override
public void onClick(View v) {
if (mListener == null) {
return;
}
int position = (int) v.getTag();
if (position == -1) {
mListener.onContactCallClicked(v, getCursor(), position);
} else {
mListener.onContactAddClicked(v, position);
}
}
public interface OnContactClickListener {
void onContactCallClicked(View v, Cursor cursor, int position);
void onContactAddClicked(View v, int position);
}
protected class ContactHolder extends RecyclerView.ViewHolder {
private TextView mNameTextView;
private CircleImageView mContactPhotoImageView;
protected ContactHolder(View itemView) {
super(itemView);
mNameTextView = (TextView) itemView.findViewById(R.id.cell_contact_name_textview);
mContactPhotoImageView = (CircleImageView) itemView.findViewById(R.id.cell_contact_photo_imageview);
}
}
}
推荐答案
来自 Realm 的 Christian 在这里.Realm 目前不公开 Cursor,尽管这是我们想做的事情:https://github/realm/realm-java/issues/438
Christian from Realm here. Realm currently doesn't expose a Cursor although it is something we want to do: https://github/realm/realm-java/issues/438
如果你想在 Realm 中使用 RecyclerView,我会推荐这篇博文以获取有关如何集成它们的建议:http://gradlewhy.ghost.io/realm-results-with-recyclerview/
If you want to use a RecyclerView with Realm I would recommend this blogpost for advice on how to integrate them: http://gradlewhy.ghost.io/realm-results-with-recyclerview/
这篇关于使用 Realm 库获取光标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论