Я хотел бы внедрить Spinner, NumberPicker и Radio Group в мой адаптер, чтобы они отображались после сохранения в View. У меня проблема с написанием кода правильно.
ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ
package com.example.apkadlapacjenta
import android.annotation.SuppressLint import android.content.Context
import android.os.Bundle import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_historia_pomiarow.*
import kotlinx.android.synthetic.main.content_glukoza.view.*
import kotlinx.android.synthetic.main.row.view.*
import kotlinx.android.synthetic.main.row.view.deleteBtn
import kotlinx.android.synthetic.main.row1.view.*
class HistoriaPomiarow : AppCompatActivity() {
var listaWynikow = ArrayList<FIrebaseVal>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_historia_pomiarow)
setSupportActionBar(toolbar)
//Wczytujemy baze danych
LoadQuery("%")
supportActionBar?.setDisplayHomeAsUpEnabled(true)
}
override fun onResume() {
super.onResume()
LoadQuery("%")
}
private fun LoadQuery(title:String){
val dbManager = DbMenager(this)
val projections = arrayOf("Id", "Stezenie", "Zegar","Data","Posilek","Stres","Samopoczucie","Hiperglikemia","Insulina")
val selectionArgs = arrayOf(title)
val cursor =
dbManager.Query(projections, "Title like?", selectionArgs , "Title")
listaWynikow.clear()
if (cursor.moveToFirst()) {
do {
val ID = cursor.getInt(cursor.getColumnIndex("Id"))
val Stezenie = cursor.getInt(cursor.getColumnIndex("Stezenie"))
val Zegar = cursor.getString(cursor.getColumnIndex("Zegar"))
val Data =cursor.getString(cursor.getColumnIndex("Data"))
val Posilek = cursor.getString(cursor.getColumnIndex("Posilek"))
val Stres = cursor.getString(cursor.getColumnIndex("Stres"))
val Samopoczucie = cursor.getString(cursor.getColumnIndex("Samopoczucie"))
val Hiperglikemia = cursor.getString(cursor.getColumnIndex("Hiperglikemia"))
listaWynikow.add(FIrebaseVal(ID, Stezenie, Zegar,Data,Posilek,Stres,Samopoczucie,Hiperglikemia))
} while (cursor.moveToNext())
}
//Adapter
var ListaWynikowAdapter = MylistApdater(this,listaWynikow)
}
inner class MylistApdater (context: Context, private var ListaWynikowAdapter: ArrayList<FIrebaseVal>): BaseAdapter() {
var listWynikiArray = ArrayList<FIrebaseVal>()
var context: Context?= null
@SuppressLint("ViewHolder")
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val myView = layoutInflater.inflate(R.layout.row1,null)
val Wynik = ListaWynikowAdapter[position]
myView.stezenienumberpicker.text= Wynik.nodeNumberPicker
myView.godzina.text=Wynik.nodezegar
myView.data.text=Wynik.nodedata
myView.posilekRG.text=Wynik.nodeposilek
myView.SP1.text=Wynik.nodehiperglikemia
myView.SP2.text=Wynik.nodestres
myView.SP3.text=Wynik.nodesamopoczucie
//Przycisk kasowania
myView.deleteBtn.setOnClickListener{
val dbMenager = DbMenager(this.context!!)
val selectionArgs = arrayOf(Wynik.nodeID.toString())
dbMenager.delete("ID=?",selectionArgs)
LoadQuery("%")
}
override fun getItem(position: Int): Any {
}
override fun getItemId(position: Int): Long {
}
override fun getCount(): Int {
}
}
}
Проблема здесь
@SuppressLint("ViewHolder")
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val myView = layoutInflater.inflate(R.layout.row1,null)
val Wynik = ListaWynikowAdapter[position]
myView.stezenienumberpicker.text= Wynik.nodeNumberPicker
myView.godzina.text=Wynik.nodezegar
myView.data.text=Wynik.nodedata
myView.posilekRG.text=Wynik.nodeposilek
myView.SP1.text=Wynik.nodehiperglikemia
myView.SP2.text=Wynik.nodestres
myView.SP3.text=Wynik.nodesamopoczucie
}
УЗЕЛ
package com.example.apkadlapacjenta
import android.widget.NumberPicker
import android.widget.RadioGroup
import android.widget.Spinner
class FIrebaseVal(
nodeID: Int, nodeNumberPicker: Int,
nodezegar:String,
nodedata:String,
nodeposilek: String,
nodehiperglikemia: String,
nodestres: String,
nodesamopoczucie: String,
nodeinsulina:Int) {
var nodeID: Int?= nodeID
var nodeNumberPicker: Int = nodeNumberPicker
var nodezegar:String?=nodezegar
var nodedata:String?=nodedata
var nodeposilek: String =nodeposilek
var nodehiperglikemia: String =nodehiperglikemia
var nodestres: String =nodestres
var nodesamopoczucie: String =nodesamopoczucie
var nodeinsulina:Int?=nodeinsulina
}
У вас нужно установить, например, numberpicker в узле как numberpicker, а не как int, а остальные аналогично? Хорошо ли это
Я бы хотел хорошо реализовать позиции
"stezenienumberpicker" в качестве NumberPicker
"myView. posilekRG.text = Result.nodeposilek "в качестве RadioGroup
Все SP1,2,3 в качестве счетчиков
Как мне это сделать?