Комната Android - выберите Все, затем запишите в текстовый файл - PullRequest
0 голосов
/ 12 марта 2019

Я последовал за Android Room с учебником View , и мне удалось воссоздать учебное приложение. Весь мой код можно найти в этом уроке. Единственная разница с моим приложением в настоящее время заключается в том, что моя MainActivity - это WebView, а затем, когда пользователь нажимает кнопку на панели инструментов, он попадает в Комнату с функциональностью приложения View, в точности как в учебнике. По сути, я просто добавил еще одно занятие заранее.

Я пытался использовать методы getAllWords () и getAlphabetizedWords (), связанные с LiveData, и выгружал результаты в Logcat, но они всегда выводятся в виде строки, подобной хешу (например, Word @ 6f2f356). Я пытаюсь получить точное значение слова, которое я извлекаю из базы данных Room.

У меня 2 проблемы на данный момент:

  1. Я бы хотел выбрать все слова в таблице базы данных Room из MainActivity.

  2. После выбора всех терминов из таблицы, я хотел бы записать их все в текстовый файл или CSV.

В своей функции MainActivity я использую приведенную ниже функцию, чтобы отправить пользователя в начало комнаты с помощью учебной функциональности View (WordList). Мой класс WordList эквивалентен MainActivity учебника. В этом классе WordList я попытался использовать getAllWords (), и он возвращает термины в хеш-подобном состоянии.

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

        case R.id.nix_menu_back:
            onBackPressed();
            break;
        case R.id.nix_menu_forward:
            onForwardPressed();
            break;
        case R.id.nix_menu_refresh:
            nixWebView.reload();
            break;
        case R.id.nix_string_list:
            nixWebView.reload();
            Intent intent = new Intent(this, WordList.class);
            startActivity(intent);
            break;
    }
    return super.onOptionsItemSelected(item);
}

Может кто-нибудь объяснить мне, как выбрать все термины в базе данных Room и вывести их в удобочитаемом формате в Logcat и внутренний текстовый файл?

Любая помощь приветствуется, и мои искренние извинения, если это повторяется! Я проверил SO, и единственный вопрос, который я нашел касающийся моей ситуации, не охватывал эту ситуацию.

Я рад предоставить больше кода, если вас спросят. Спасибо всем!

1 Ответ

2 голосов
/ 13 марта 2019

Hashy выглядящие строки

Если вы хотите, чтобы ваш Word объект был напечатан в читаемом объекте, вы должны переопределить метод public String toString() для этого класса, поскольку реализация по умолчанию возвращает хеш-вид String.

Некоторый свет на это может быть:

public class Word {
    // Other stuff you may have
    @Override
    public String toString() {
         return this.wordID+" - "this.wordContent;
    }
}

И это может вывести: «12 - Кошка»

Чтобы перечислить все слова.

Методы, представленные в этой кодовой метке, достаточны для перечисления всех слов, содержащихся в БД SQLite.

Чтобы сохранить их во внешнем файле в виде простого текста.

Проверьте этот другой вопрос переполнения стека

Не забудьте добавить <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

В вашем AndroidManifest.xml файле!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...