Как создать базу данных из строки-массива и загрузить ее в свою деятельность? - PullRequest
0 голосов
/ 30 сентября 2018

У меня проблема, я хочу написать базу данных с областью.Мои данные - String, и их число превышает 500, и я записал их как String, и я хотел бы сохранить все данные по области во время первого запуска программы.Есть ли способ, чтобы я не вводил всю информацию по отдельности?Что вы предлагаете?Тпй

1 Ответ

0 голосов
/ 02 октября 2018
  • Создайте файл JSON с данными вместо записи в string.xml.

И скопируйте файл json в ресурсы .

  • MakeКласс модели.
  • Ваш 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;
    }
}

Затем импортируйте данные, используяОбласть

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");
    }
}

Обновление

Вы можете получить данные, используя findAll Like,

RealmResults<Person> details = realm.where(Person.class).equalTo("Name","Anthony").findAll();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...