如何从字符串数组创建领域数据库并在我的活动中加载它?



我有一个问题,我想用 realm 编写数据库。我的数据是字符串,它们的数量超过 500,我将它们写成字符串,我想在第一次程序运行期间按领域保存所有数据。 有没有办法不单独输入所有信息? 你有什么建议? TNX

  • 创建包含数据的 JSON 文件,而不是以字符串.xml 形式写入。

并将json 文件复制到资产

  • 使模型类。
  • 您的 JSON 看起来像 ,
[
{
"Name": "Michael",
"Phone": 2525055
},
{
"Name": "Anthony",
"Phone": 665588
},
{
"Name": "Dana",
"Phone": 245244
}
]

模型类

public class People extends RealmObject {
private String Name;
private int Phone;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getPhone() {
return Phone;
}
public void setPhone(int Phone) {
this.Phone = Phone;
}
}

然后使用 Realm 导入数据

public class RealmImporter {
// From json to realm database
static void importFromJson(final Resources resources) {
Realm realm = Realm.getDefaultInstance();
//transaction timer
final TransactionTime transactionTime = new TransactionTime(System.currentTimeMillis());
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
InputStream inputStream = resources.openRawResource(R.raw.people);
try {
realm.createAllFromJson(People.class, inputStream);
transactionTime.setEnd(System.currentTimeMillis());
} catch (Exception e) {
e.printStackTrace();
} finally {
realm.close();
}
}
});
Log.d("Realm", "createAllFromJson Task completed in " + transactionTime.getDuration() + "ms");
}
}

更新

您可以使用查找所有喜欢来获取数据,

RealmResults<Person> details = realm.where(Person.class).equalTo("Name","Anthony").findAll();

最新更新