我有一个位置监听器对象,我想知道如何在 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/