如何从其他Activity调用函数?

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

我是一名正在从事学校项目的新手。

当我想用其他方法调用函数时,我遇到了困难。该功能没有出现在建议中。我必须进行活动,其中有historyHelper 和mainResult。我想在mainResult活动中调用historyHelper中的函数

historyHelper中的函数

fun insertHistory(idnya: historyModel): Long {
        val db = this.writableDatabase

        val contentValues = ContentValues()
        contentValues.put(DBid, idnya.ID_RC)
        contentValues.put(DBdate, idnya.DATE_RC)
        contentValues.put(DBnama, idnya.NAMA_RC)
        contentValues.put(DBumur, idnya.UMUR_RC)
        contentValues.put(DBjk, idnya.JK_RC)
        contentValues.put(DBriksa, idnya.PERIKSA_RC)
        contentValues.put(DBkadar, idnya.KADAR_RC)
        contentValues.put(DBsatuan, idnya.SATUAN_RC)
        contentValues.put(DBinter, idnya.INTER_RC)

        val berhasil = db.insert(DB_Table,null,contentValues)
        db.close()
        return berhasil
    }

mainResult中的代码

val checkHistory = findViewById<Button>(R.id.btnck_auhigh)
        checkHistory.setOnClickListener{
        //insert history
        dbHelper = historyHelper(this)
        val calend = Calendar.getInstance().time
        val dateFormat = DateFormat.getDateInstance(DateFormat.SHORT).format(calend)
        val dateHist = dateFormat.toString()
        val namaHist = profile2.toString()
        val umurHist = profile3.toString().toInt()
        val jkHist = profile1.toString()
        val periksaHist = "AU"
        val kadarHist = kadar1.toString().toDouble()
        val satuanHist = kadar2.toString()
        val interHist = "tinggi"


        //add to history
        if (profile1.text == "" || profile2.text == "" || profile3.text == "" || kadar1.text == "" || kadar2.text == "" ) {
            Toast.makeText(applicationContext, "No History Saved", Toast.LENGTH_SHORT).show()
        } else {
            val hst = historyModel(DATE_RC = dateHist, NAMA_RC = namaHist, UMUR_RC = umurHist, JK_RC = jkHist, PERIKSA_RC = periksaHist, KADAR_RC = kadarHist, SATUAN_RC = satuanHist, INTER_RC = interHist)
        }
        val status = dbHelper.insertHistory(idnya) //the function that i cant call
        if (status > -1){
            Toast.makeText(applicationContext, "History Saved", Toast.LENGTH_SHORT).show()
        } else {
            Toast.makeText(applicationContext, "History not Saved", Toast.LENGTH_SHORT).show()
        }
        }

idnya 的来源是我的 HistoryModel 活动,它存储我数据库的数据类型,这是我的代码

import org.w3c.dom.Text
import kotlin.random.Random

data class historyModel (
    var ID_RC: Int = getAutoId(),
    var DATE_RC : String,
    var NAMA_RC : String,
    var UMUR_RC : Int,
    var JK_RC : String,
    var PERIKSA_RC : String,
    var KADAR_RC : Double,
    var SATUAN_RC : String,
    var INTER_RC : String
){
    companion object{
        fun getAutoId(): Int{
            val rnd = Random(1)
            return rnd.nextInt(999)
        }
    }

}

请帮我修复此代码T_T

我以前也遇到过类似的问题,但我找不到好的解决方案。所以我重写了我想使用的活动中的函数T_T。

android database sqlite kotlin android-studio
1个回答
0
投票

只需创建一个类对象,您可以在其中创建该函数并与该类对象一起使用,并且使用该类对象您可以访问该函数

class test {
fun myFunction(){
            print("this is test function")
        }
    }
    
    class mainClass{
        val t  = test().myFunction();
    }
© www.soinside.com 2019 - 2024. All rights reserved.