android - 如何在 Activity 类之外定义 TextView ?

标签 android android-studio kotlin android-location

我有一个位置监听器对象,我想知道如何在 Activity 类之外定义一个 TextView。在 LayoutInflater.from(context).inflate(R.layout.main, null) 中,我得到了“context”和“main”的未解析引用。为了 val locTextView = MainActivity.findViewById(R.id.locTextView) as TextView1 我得到一个未解析的 findViewById 引用。

private val locationListener: LocationListener = object : LocationListener {
    override fun onLocationChanged(location: Location) {
        val v = LayoutInflater.from(context).inflate(R.layout.main, null)
        val locTextView = MainActivity.findViewById(R.id.locTextView) as TextView
        locTextView.setText("" + location.longitude + ":" + location.latitude);
    }
    override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {}
    override fun onProviderEnabled(provider: String) {}
    override fun onProviderDisabled(provider: String) {}
}

最佳答案

改变你的这一行

val v = LayoutInflater.from(context).inflate(R.layout.main, null)

val v = LayoutInflater.from(applicationContext).inflate(R.layout.main, null)

再一次 改变你的

MainActivity.findViewById(R.id.locTextView) as TextView

 val locTextView =  findViewById< TextView>(R.id.locTextView)

更新

如果您想使用 Kotlin Android Extention , 然后告别 findViewById()

关于android - 如何在 Activity 类之外定义 TextView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47244248/

相关文章:

java - 替换 Kotlin 原生解决方案中的流收集

java - 使用Java代码读取Android Manifest文件

android - 如何激活 TextView 上的文本选取框?

android - Prograurd 重复的 zip 条目

android - 任务 ':app:minifyReleaseWithR8' .java.lang.NullPointerException 执行失败(无错误消息)

kotlin - 如何正确处理泛型类型?

java - 无法自动接线。找不到 'AuthenticationProvider' 类型的 bean

java - 将字符串分解为子字符串,Android

Android ListView 滚动到

android - 在真正的android设备上找不到res/color/filename.xml资源文件