@M-Misha-M
горе-junior, программирую на C#, изучаю .Net

Как вытащить данные из БД в Textview в greenDao ORM?

Здравствуйте. У меня есть recyclerView со списком элементов. Каждый элемент имеет свой id (как в ListView ), мне нужно чтобы в зависимости от нажатого id переходило на второе активити и вытаскивало нужную информацию из столбца description в Textview. БД имеет простой вид: это _id , mushroom , description . Вот мой код:
public class DetailActivity extends AppCompatActivity {
 private long id = 0;
    public Mushrooms mushrooms;

    public  TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);

        String item = getIntent().getExtras().getString("title");
       id = getIntent().getExtras().getInt("id" , 0);
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this , "mushrooms-db" , null);
        SQLiteDatabase db = helper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(db);
        DaoSession daoSession = daoMaster.newSession();
        MushroomsDao dao = daoSession.getMushroomsDao();

        mushrooms  = dao.load(id);
        
      //  List<Mushrooms> mushroomsList = dao.queryBuilder().where(MushroomsDao.Properties.Description.in(mushrooms)).list();

       textView = (TextView) findViewById(R.id.textViewDetail);


    }

}

Я принимаю id , и мне сказали что можно получение элемента реализовать через метод load mushrooms = dao.load(id);
Также на форумах нашел что можно сделать через querybuilder (я его закоментировал выше в коде). Но вот как дальше загрузить инфу в TextView? Что делать с переменной mushrooms далее? Или например как дальше поступить с List mushroomsList ? Спасибо!
  • Вопрос задан
  • 752 просмотра
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Вам бы подтянуть Java Core, работу с коллекциями...

List<Mushrooms> - это список объектов типа Mushrooms. У него есть метод isEmpy() - проверяющий, пуст ли список. Есть метод get(int) - возвращающий элемент на конкретной позиции, отсчёт начинается с 0.
У текствью есть метод setText(CharSequance) - туда можно передать строку, которую вы хотите вывести.

У ваших Mushrooms, наверное, есть какие-то методы get*() - из них, видимо, можно получить инфу.

Ну и доки по GreenDao стоило бы почитать. Например, у Query есть метод unique(). Но, по-моему, в билдере у вас запрос неправильно сформирован, непонятно.
Ответ написан
Комментировать
@M-Misha-M Автор вопроса
горе-junior, программирую на C#, изучаю .Net
ура , вроде как получилось правда не тот id что нужно выводит , но это проблема с самой нумерацией _id. Главное что текст выводит

if (id !=0) {

            DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "mushrooms-db", null);
            SQLiteDatabase db = helper.getReadableDatabase();
            DaoMaster daoMaster = new DaoMaster(db);
            DaoSession daoSession = daoMaster.newSession();
            MushroomsDao dao = daoSession.getMushroomsDao();

            mushrooms = dao.load(id);
            if (mushrooms != null) {
                textView.setText(mushrooms.getDescription());
            }

        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы