Android 如何在领域数据库中将数据从一个范围搜索到另一个范围

Android 如何在领域数据库中将数据从一个范围搜索到另一个范围,android,sorting,listview,range,realm,Android,Sorting,Listview,Range,Realm,我在一个领域数据库工作。我正在数据库中保存一些数据。说出姓名、年龄、地址、电话号码 我正在使用列表视图查看UI中的数据。 我的问题是,如果我保存的名字不按顺序排列(不是按字母顺序排列),那么如何按顺序排列 还有一个问题是,在对名称进行排序之后,我只想在列表视图中查看几个名称(比如,如果我键入的范围是从C到H),C=表示以C和H开头的名称。 有人能帮我吗。 您使用:lessThan和greaterThan或between() final RealmResults puppies=realm.whe

我在一个领域数据库工作。我正在数据库中保存一些数据。说出姓名、年龄、地址、电话号码

我正在使用列表视图查看UI中的数据。 我的问题是,如果我保存的名字不按顺序排列(不是按字母顺序排列),那么如何按顺序排列

还有一个问题是,在对名称进行排序之后,我只想在列表视图中查看几个名称(比如,如果我键入的范围是从C到H),C=表示以C和H开头的名称。 有人能帮我吗。

您使用:lessThan和greaterThan或between()

final RealmResults puppies=realm.where(Dog.class).greaterThan(“年龄”),2.lessThan(“年龄”,10.findAll();
据我所知,这也适用于字符串,因此,如果大于(“name”,“C”),它的名称将带有C

对于排序,您可以在添加到领域之前在arraylist上使用Collections.sort(),但是排序然后添加到DB将没有效果。因为查询RealmResults时获得的数据是基于您所做的查询的

要对查询进行排序,可以执行以下操作:

RealmResults<Dog>results = realm.where(Dog.class).findAllSorted("name");
RealmResultsresults=realm.where(Dog.class).findAllSorted(“名称”);

您使用:lessThan和greaterThan或between()

final RealmResults puppies=realm.where(Dog.class).greaterThan(“年龄”),2.lessThan(“年龄”,10.findAll();
据我所知,这也适用于字符串,因此,如果大于(“name”,“C”),它的名称将带有C

对于排序,您可以在添加到领域之前在arraylist上使用Collections.sort(),但是排序然后添加到DB将没有效果。因为查询RealmResults时获得的数据是基于您所做的查询的

要对查询进行排序,可以执行以下操作:

RealmResults<Dog>results = realm.where(Dog.class).findAllSorted("name");
RealmResultsresults=realm.where(Dog.class).findAllSorted(“名称”);

要按排序顺序获取数据,请如下所示

RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                        .findAllSorted("name");
 RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                      .contains("name","c").or().contains("name","h").findAll();
RealmResultsresultsd=
realm.where(DataModel.class)
.findAllSorted(“名称”);
对于第二个问题,像这样使用

RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                        .findAllSorted("name");
 RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                      .contains("name","c").or().contains("name","h").findAll();
RealmResultsresultsd=
realm.where(DataModel.class)
.contains(“名称”、“c”)或();

要按排序顺序获取数据,请如下所示

RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                        .findAllSorted("name");
 RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                      .contains("name","c").or().contains("name","h").findAll();
RealmResultsresultsd=
realm.where(DataModel.class)
.findAllSorted(“名称”);
对于第二个问题,像这样使用

RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                        .findAllSorted("name");
 RealmResults<DataModel>resultsd =
                realm.where(DataModel.class)
                      .contains("name","c").or().contains("name","h").findAll();
RealmResultsresultsd=
realm.where(DataModel.class)
.contains(“名称”、“c”)或();

是否检查过?是否检查过?
是否不需要组?我使用日期作为字符串,因此它将仅显示我键入的日期。因此,如果我在编辑框中使用日期,我需要解决方案。我想从一个范围到另一个范围获取日期无论我在编辑框中键入什么都不需要组吗?我使用日期作为字符串,因此它只显示我键入的日期。因此,如果我在编辑框中使用日期,我需要解决方案。我想要从一个范围到另一个范围的日期,无论我在编辑框中键入什么,我想要在搜索视图中使用它。我可以使用两个搜索视图来搜索我发布的数据吗。如果是这样,请让我知道如何做到这一点,你可以使2编辑文本,并使用它们作为输入范围。只有当两个编辑文本都完成时,它才会查询结果。然后尝试:realm.where(Dog.class).greaterThan(“name”,editText1.getText().toString()).lessThan(“name”,editText2.getText().toString()).findAll();它很容易在搜索视图中使用,但对于两个编辑框来说,这对我来说很困难。任何人都可以举一个两个文本框搜索的例子,在上面讨论的列表视图中查看数据范围。你在开玩笑吧?我之前的评论有一个例子…:)这是我自己写的,没有经过测试。但它应该起作用。但是我有一个问题。大于和小于不起作用。只有“.contains”起作用。即使我使用“.contains”,也只显示我在编辑文本中键入的数据,而不显示编辑文本框数据之间的数据。如何解决我想在搜索视图中使用它。我可以使用两个搜索视图来搜索我发布的数据吗。如果是这样,请让我知道如何做到这一点,你可以使2编辑文本,并使用它们作为输入范围。只有当两个编辑文本都完成时,它才会查询结果。然后尝试:realm.where(Dog.class).greaterThan(“name”,editText1.getText().toString()).lessThan(“name”,editText2.getText().toString()).findAll();它很容易在搜索视图中使用,但对于两个编辑框来说,这对我来说很困难。任何人都可以举一个两个文本框搜索的例子,在上面讨论的列表视图中查看数据范围。你在开玩笑吧?我之前的评论有一个例子…:)这是我自己写的,没有经过测试。但它应该起作用。但是我有一个问题。大于和小于不起作用。只有“.contains”起作用。即使我使用“.contains”,也只显示我在编辑文本中键入的数据,而不显示编辑文本框数据之间的数据。如何解决这个问题