‘kotlin’在sqlite中的editTextText中搜索数据

问题描述 投票:0回答:1

-如果editTextText2中的数据在数据库中,我想将其打印到textview。 -我读了很多文章,看了很多视频,但我无法适应自己。大多数都不是kotlin语言,我是新手。 -他们打印出整个数据库或搜索某个单词。我做了这些事情。我想搜索 editTextText2 中的数据。(搜索将在列 col_name 中)

MainActivity.kt

binding.button3.setOnClickListener{
            var data = db.readData()
            binding.textView.text =""
            /*for (i in 0 until data.size){
                binding.textView.append(data.get(i).id.toString()+" "
                        +data.get(i).adsoyad+" "+data.get(i).yasi+"\n")}*/
            for (i in 0 until data.size){
               if (binding.editTextText2.toString()==data.get(i).adsoyad){binding.textView.append(data.get(i).adsoyad+"\n")}
                else{binding.textView.text="yeni"+"\n"}

            }

    }

DataBaseHelper.kt

import android.content.ContentValues
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
import android.widget.Toast

val database_name = "veritabanim"
val table_name = "kullanicilar"
val col_name = "adisoyadi"
val col_age = "yasi"
val col_id = "id"
class DataBaseHelper (var context: Context):SQLiteOpenHelper(context,
    database_name,null,1) {
    override fun onCreate(p0: SQLiteDatabase?) {
        var createTable = " CREATE TABLE "+ table_name+"("+
                col_id +" INTEGER PRIMARY KEY AUTOINCREMENT,"+
                col_name +" VARCHAR(256),"+
                col_age +" INTEGER)"
        p0?.execSQL(createTable)
    }

    override fun onUpgrade(p0: SQLiteDatabase?, p1: Int, p2: Int) {
        TODO("Not yet implemented")
    }
    fun insertData(kullanici: kullanici){
        val db =this.writableDatabase
        val cv = ContentValues()
        cv.put(col_name,kullanici.adsoyad)
        cv.put(col_age,kullanici.yasi)
        var sonuc =db.insert(table_name,null,cv)
        if (sonuc ==(-1).toLong()){
            Toast.makeText(context,"hatali",Toast.LENGTH_LONG).show()
        }else{
            Toast.makeText(context,"başsarili",Toast.LENGTH_LONG).show()
        }
    }

    fun readData(): MutableList<kullanici> {
        var liste:MutableList<kullanici> = ArrayList()
        val db = this.writableDatabase
        var sorgu = "Select * from "+table_name
        var sonuc = db.rawQuery(sorgu,null)
        if (sonuc.moveToFirst()){
            do {
                var kullanici = kullanici()
                kullanici.yasi = sonuc.getString(sonuc.getColumnIndexOrThrow(col_age)).toInt()
                kullanici.id = sonuc.getString(sonuc.getColumnIndexOrThrow(col_id)).toInt()
                kullanici.adsoyad = sonuc.getString(sonuc.getColumnIndexOrThrow(col_name))
                liste.add(kullanici)
            }while (sonuc.moveToNext())
        }
        sonuc.close()
        db.close()
        return liste
    }



}

kullanici.kt

class kullanici {
    var id:Int=0
    var adsoyad:String=""
    var yasi:Int=0
    constructor(adsoyad:String,yasi:Int){
        this.adsoyad =adsoyad
        this.yasi =yasi
    }
    constructor(){}
}
android sqlite kotlin android-studio
1个回答
0
投票

enter image description here

enter image description here

对于Sqlite控件,你可以在DAO部分编写一个控制函数,即在操作部分,如第一张照片,该函数检查有多少数据。在我的示例中,我检查了 id,您可以检查其他唯一数据。在第二张图中,这个控件正在运行,bundle.id部分有我传入的数据,你可以保存你自己的数据,如果控件数据!=0你可以说打印到textview。在这个例子中,我用它来控制,以便在向购物车添加数据时不会添加相同的数据。

© www.soinside.com 2019 - 2024. All rights reserved.