gpt4 book ai didi

android - 使用 Realm 库获取光标

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:03:40 26 4
gpt4 key购买 nike

我正在为我的 ListView 使用游标适配器。我打算使用内容解析器来获取光标。现在我改变了主意,给它一个学习 Realm 的机会。

如何使用 Realm 获取“光标”对象?顺便说一句,我也很感激能提供一些 fragment 来对光标进行排序。

谢谢。

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.com/realm/realm-java/issues/438

如果您想将 RecyclerView 与 Realm 一起使用,我会推荐这篇博文以获取有关如何集成它们的建议:http://gradlewhy.ghost.io/realm-results-with-recyclerview/

关于android - 使用 Realm 库获取光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29587215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com