对此可能有一个简单的答案,但试图充分使用Butternife,将一些FindViewByID转换为@BindViews,并注意到我不能对需要声明为final的视图使用BindView,因为Java引发了“变量'x'可能没有初始化”的错误。
显然,我不需要使用BindView,而只是对这一个感到好奇,以了解更多关于Java的知识。我读了一点关于最终宣言的意思,但不能把它和巴特尼刀联系起来。谢谢你的帮助。
它与白切刀无关。如果要初始化声明为final的成员
,可以在声明时进行,也可以在构造函数中进行。对于findviewbyid
和butternife
,这两个选项都不在表中。在这两种情况下,您都使用FindViewByID
,它需要一个有效的Context
对象,并且可以在SetContentView
之后成功使用,而在初始化Final
成员时,这两个条件都不满足。请注意,Butternife
使用代码生成,而在幕后,它仍然像通常那样使用FindViewByID
我有一个来自别人的项目,但当我打开它时,有一些错误。Butternife有一个错误,它显示:“”,我知道它已被@bindview替换,我将更改为,但只有findbyid2个参数,而只有1个参数。我如何转换它? 这是新代码: 这是旧代码:
Android Studio 2.3.3。
我正试图找出在Kotlin中进行Android视图绑定的最佳方法。似乎有几个选择: 我对java中的findViewById和Butternife非常熟悉,但是在Kotlin中,每种视图绑定方法的优缺点是什么? Kotlin Android扩展能很好地使用RecycerView+ViewHolder模式吗? 另外,Kotlin Android扩展如何通过处理嵌套视图的视图绑定?
我对Android、Android Studio、Butternife和Gradle构建系统相当陌生。然而,我对Java或一般编程并不陌生。 我试图用JDK 1.8和Butternife 8.1.0版本构建一个Android应用程序,但Gradle构建一直失败,比如: 错误:在任务“:app:CompiledEbugJavaWithJack”上找不到属性“Options”。 null 它到底管用吗