Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用kodein依赖项注入将arraylist插入到任何服务或活动类中?_Android_Kotlin_Kodein - Fatal编程技术网

Android 如何使用kodein依赖项注入将arraylist插入到任何服务或活动类中?

Android 如何使用kodein依赖项注入将arraylist插入到任何服务或活动类中?,android,kotlin,kodein,Android,Kotlin,Kodein,最近,我开始学习kodein依赖项注入。我正在尝试将数据加载到ArrayList中,然后将该ArrayList注入到所需的服务或活动中,但我无法做到这一点,并且面临运行时崩溃,请提供任何指导 我的服务级别: class NotificationAccessibilityService() : AccessibilityService(),KodeinAware { override val kodein: Kodein = Kodein.lazy{ import(AppMod

最近,我开始学习kodein依赖项注入。我正在尝试将数据加载到ArrayList中,然后将该ArrayList注入到所需的服务或活动中,但我无法做到这一点,并且面临运行时崩溃,请提供任何指导

我的服务级别:

class NotificationAccessibilityService() : AccessibilityService(),KodeinAware {
    override val kodein: Kodein = Kodein.lazy{
      import(AppModules().appModule(applicationContext))
    }
    val logger by instance<Logger>()
fun insertdata(){
//trying to insert data into arraylist
  logger.list = ArrayList()
  logger.list.add(mNodeInfo)
}
}
类通知AccessibilityService():AccessibilityService(),KodeinAware{
覆盖val-kodein:kodein=kodein.lazy{
导入(AppModules().appModule(applicationContext))
}
val logger(按实例)()
fun insertdata(){
//正在尝试将数据插入arraylist
logger.list=ArrayList()
logger.list.add(mNodeInfo)
}
}
AppModules类:

class AppModules()  {
    fun appModule(context:Context) = Kodein.Module{
        bind<Logger>() with  singleton { AndroidLogger() }
    }
}
class-AppModules(){
fun appModule(上下文:context)=Kodein.Module{
使用单例{AndroidLogger()}绑定()
}
}
记录器接口:

interface Logger {
    var list:ArrayList<AccessibilityNodeInfo>
}
接口记录器{
变量列表:ArrayList
}
记录器类别:

class AndroidLogger() : Logger  {
    override var list: ArrayList<AccessibilityNodeInfo>
        get() = TODO("not implemented")
        set(value) {}
}
class AndroidLogger():记录器{
覆盖变量列表:ArrayList
get()=TODO(“未实现”)
设置(值){}
}
在我的活动中,我正在扩展kodeinaware,然后尝试从kodein访问该ArrayList,但应用程序正在崩溃:

class NormalCopy : AppCompatActivity(),KodeinAware {
    override val kodein: Kodein by closestKodein()

    val logger by kodein.instance<Logger>()

    var accesslist = logger.list

} 
类NormalCopy:AppCompatActivity(),KodeinAware{
通过closestKodein()覆盖val kodein:kodein
kodein.instance()提供的val记录器
var accesslist=logger.list
} 

抱歉,也许我误解了您的意思,但看起来您必须从
记录器
实现中删除
TODO

class AndroidLogger() : Logger {
    override var list: ArrayList<AccessibilityNodeInfo> = arrayListOf()
}
class AndroidLogger():记录器{
重写变量列表:ArrayList=arrayListOf()
}