Не могу сделать так чтобы элементы GridView брали названия картинок и текст из БД

Рейтинг: 0Ответов: 0Опубликовано: 20.06.2023

Создал базу данных SqLite, и через цикл for должны создаваться элементы GridView. Не понимаю что не так делаю, ибо текст из БД берется и помещается, а вот с картинками лажа. Какие костыли только не использовал, но ничего не смог добиться. У меня есть подозрения что проблема именно в itemlist.add, а именно в том как я пытаюсь засунуть название картинки. Вот код:

БД:

val COL_ID_SERVICES = "id"
val COL_TITLE_SERVICES = "title"
val COL_NAME_IMAGES_SERVICES = "imgname"

val createTableServices = "CREATE TABLE $TABLE_NAME_SERVICES( " +
                "$COL_ID_SERVICES INT primary key not null, " +
                "$COL_NAME_IMAGES_SERVICES text not null, " +
                "$COL_TITLE_SERVICES text not null);";




        db?.execSQL(createTableAccount)
        db?.execSQL(createTableServices)

val inserttableServices = "insert into $TABLE_NAME_SERVICES (id, title, imgname) values " +
                "(1, 'Консультация и согласование', 'R.mipmap.ic_launcher_consult')," +
                "(2, 'Умный дом', 'R.mipmap.ic_launcher_smart_home')," +
                "(3, 'Электронная подпись', 'R.mipmap.ic_launcher_signature')," +
                "(4, 'Генераторные установки', 'R.mipmap.ic_launcher_generator')," +
                "(5, 'Солнечные электростанции', 'R.mipmap.ic_launcher_solar_panels')," +
                "(6, 'Проектирование и строительство сетей', 'R.mipmap.ic_launcher_projects')," +
                "(7, 'Проверка и установка приборов учёта', 'R.mipmap.ic_launcher_devices')," +
                "(8, 'Ремонт и проверка сетей', 'R.mipmap.ic_launcher_repair')," +
                "(9, 'Тестирование и диагностика', 'R.mipmap.ic_launcher_test')," +
                "(10, 'Зарядные станции для электромобилей', 'R.mipmap.ic_launcher_cars')," +
                "(11, 'IT продукты', 'R.mipmap.ic_launcher_it_products')," +
                "(12, 'Опоры двойного назначения', 'R.mipmap.ic_launcher_double');"
        db?.execSQL(inserttableServices)

 @SuppressLint("Range")
    fun readDataServices() : MutableList<Service>
    {
        val list : MutableList<Service> = ArrayList()


        val db = this.readableDatabase
        val queryservices = "Select title, imgname from $TABLE_NAME_SERVICES"
        val resultservices = db.rawQuery(queryservices, null)
        if (resultservices.moveToFirst())
        {
            do
            {
                val Service = Service()
                Service.Title = resultservices.getString(resultservices.getColumnIndex(COL_TITLE_SERVICES))
                Service.Imgname = resultservices.getString(resultservices.getColumnIndex(COL_NAME_IMAGES_SERVICES))
                list.add(Service)
            }while (resultservices.moveToNext())
        }


        resultservices.close()
        db.close()
        return list

И код самой Activity



    val Serv = arrayOfNulls<String>(12)
    val Imgs = arrayOfNulls<String>(12)



    override fun onCreate(savedInstanceState: Bundle?) {
        WindowCompat.setDecorFitsSystemWindows(window, false)
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_catalog)

        var resultservice = ""
        val context = this
        val db = BruhDataBase(context)

        var dataser = db.readDataServices()

        for (i in 0..(dataser.size-1))
        {
            resultservice = (dataser.get(i).Title)
            Serv[i] = resultservice
            resultservice = (dataser.get(i).Imgname)
            Imgs[i] = resultservice
        }



        val ServicesGrid = this.findViewById(R.id.servicesgrid) as GridView

        val adapter = gridadapter(this, R.layout.servicesgridlayout, data)

        ServicesGrid.adapter = adapter
    }
    val data : ArrayList<servicesgridlayout>
        get()
        {

            val item_list : ArrayList<servicesgridlayout> = ArrayList<servicesgridlayout>()
            for (i in Serv.indices)
            {
                item_list.add(servicesgridlayout(Imgs[i].toString(), Serv[i].toString()))
            }




            return item_list
        }
}

Буду очень рад если кто-то сможет помочь

Ответы

Ответов пока нет.