我的很多活动中都需要包含一个类,因此我制作了一个需要访问视图的类。 这是我的代码:
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中无法做到,它也无法找到视图。
如何访问非活动类中的视图?
答案 0 :(得分:1)
tvToolbar=((Activity)context).findViewById
确实是您的代码吗?就此而言,它不会在Kotlin或Java中进行事件编译。
语法上正确的方式是这样的:
tvToolbar = (context as Activity).findViewById(R.id.tvToolbar)
尽管我建议不要将整个活动对象传递给另一个类。您为什么不仅仅引用您的观点?并且一定要阅读有关WeakReferences的信息。