【问题标题】:select from table with title in Realm从 Realm 中带有标题的表中选择
【发布时间】:2017-02-07 18:33:35
【问题描述】:

我是Real编程的初学者。我以前使用过Sqlite,现在我尝试学习Realm。我找到了一个教程,一切都很完美

this tutorial

我可以在 RecyclerView 中显示我的所有值。但我有一个问题。我如何从数据库中返回所有值,其中标题等于例如 hello 并让我可以在 RecyclerView 中显示它 这是java代码

@Bind(R.id.edit_title) EditText mEditTitle;
@Bind(R.id.recycler_view)
RecyclerView mRecyclerView;
private Realm mRealm;

@Override
public void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mRealm = Realm.getInstance(getContext());
}

@Nullable
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_edition, container, false);
    ButterKnife.bind(this, view);
    return view;
}


@Override
public void onViewCreated(final View view, @Nullable final Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    mRealm.beginTransaction();
    RealmResults<MyBook> books = mRealm.where(MyBook.class).equalTo("title", "Hello").findAll();

    mRealm.commitTransaction();
    mRecyclerView.setAdapter(new MyListAdapter(mRealm.allObjects(MyBook.class)));
}

@Override
public void onDestroy() {
    super.onDestroy();
    mRealm.close();
}

@OnClick(R.id.button_add)
public void onAddClick() {
    mRealm.beginTransaction();
    MyBook book = mRealm.createObject(MyBook.class);
    book.setTitle(getTrimmedTitle());
    mRealm.commitTransaction();
}

@OnClick(R.id.button_remove)
public void onRemoveClick() {
    mRealm.beginTransaction();
    RealmResults<MyBook> books = mRealm.where(MyBook.class).equalTo("title", getTrimmedTitle()).findAll();
    if(!books.isEmpty()) {
        for(int i = books.size() - 1; i >= 0; i--) {
            books.get(i).removeFromRealm();
        }
    }
    mRealm.commitTransaction();
}

private String getTrimmedTitle() {
    return mEditTitle.getText().toString().trim();
}

如果有人知道解决方案,请帮助我。 P.s 正如我所说我是初学者 Realm 编程和好的教程或示例对我来说是完美的 谢谢大家

【问题讨论】:

    标签: android sqlite tsql android-recyclerview realm


    【解决方案1】:

    Realm 像任何其他数据库一样工作,进行查询。 这是一个迭代器,但你可以有一个列表

     Realm realm = Realm.getDefaultInstance();
     Iterator all = (MyBook)realm.where(MyBook.class).equalTo("title", "hello").findAll().iterator ();
    

    其中 title 是 MyBook 类中变量的名称,hello 是您要查找的名称

    【讨论】:

    • 我写了这段代码,它可以工作 RealmResults books = mRealm.where(MyBook.class).equalTo("title", "hello").findAll(); mRealm.commitTransaction(); mRecyclerView.setAdapter(new MyListAdapter(books));这是一个正确的解决方案吗? @Dinorah Tovar
    • commitTransaction() 是当您写入数据库时​​。当您进行咨询时,您不需要它。
    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 2011-06-16
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多