Как определить текстовое представление вне класса деятельности?

У меня есть объект слушателя местоположения, и я хотел знать, как определить TextView вне класса деятельности. В LayoutInflater.from(context).inflate(R.layout.main, null) Я получаю неразрешенную ссылку на "контекст" и "основной". За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) {}
}

1 ответ

Изменить эту строку

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()

Другие вопросы по тегам