kotlin-非活动类的访问视图

时间:2019-04-21 04:52:14

标签: android kotlin

我的很多活动中都需要包含一个类,因此我制作了一个需要访问视图的类。 这是我的代码:

class Toolbar{
private lateinit var typeface:Typeface;
private lateinit var context:Context
private lateinit var tvToolbar:TextView;

fun MakeToolbar(context:Context, title:String){
    this.context=context
    init();
}

private fun init() {
    typeface= Func.getTypeFace(context)!!

    tvToolbar=((Activity)context).findViewById 

}

问题是,在Java中,我可以轻松地访问上下文并使用findViewById来获取我的视图,买我在kotlin中无法做到,它也无法找到视图。

如何访问非活动类中的视图?

1 个答案:

答案 0 :(得分:1)

tvToolbar=((Activity)context).findViewById确实是您的代码吗?就此而言,它不会在Kotlin或Java中进行事件编译。

语法上正确的方式是这样的:

tvToolbar = (context as Activity).findViewById(R.id.tvToolbar)

尽管我建议不要将整个活动对象传递给另一个类。您为什么不仅仅引用您的观点?并且一定要阅读有关WeakReferences的信息。