Android 在伴生对象Kotlin中初始化ImageView
我试图在companion对象中初始化ImageView,因为我希望这些方法是静态的,但我有一个错误,下面是我的代码吗Android 在伴生对象Kotlin中初始化ImageView,android,kotlin,kotlin-companion,Android,Kotlin,Kotlin Companion,我试图在companion对象中初始化ImageView,因为我希望这些方法是静态的,但我有一个错误,下面是我的代码吗 companion object { lateinit var bufferingAnimation : LoadingAnimation var bufferingIndicator = findViewById(R.id.loading) fun startBufferingAnimation() { bufferingAnimati
companion object {
lateinit var bufferingAnimation : LoadingAnimation
var bufferingIndicator = findViewById(R.id.loading)
fun startBufferingAnimation() {
bufferingAnimation = LoadingAnimation(bufferingIndicator)
bufferingAnimation.startAnimation()
}
fun stopBufferingAnimation() {
bufferingAnimation.clearAnimation()
}
}
我无法初始化bufferingIndicator是否有其他方法?不建议创建静态视图,因为这可能会导致内存泄漏,但如果仍然需要静态视图,可以尝试以下方法:-
companion object {
lateinit var imageView: ImageView
}
override fun onCreate(savedInstanceState: Bundle?) {
imageView =findViewById<ImageView>(R.id.imageView)
}
伴生对象{
lateinit var imageView:imageView
}
重写创建时的乐趣(savedInstanceState:Bundle?){
imageView=findViewById(R.id.imageView)
}
不建议创建静态视图,因为这可能会导致内存泄漏,但如果仍然需要静态视图,可以尝试以下操作:-
companion object {
lateinit var imageView: ImageView
}
override fun onCreate(savedInstanceState: Bundle?) {
imageView =findViewById<ImageView>(R.id.imageView)
}
伴生对象{
lateinit var imageView:imageView
}
重写创建时的乐趣(savedInstanceState:Bundle?){
imageView=findViewById(R.id.imageView)
}
如果要在运行时初始化图像视图:-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_image_view_example)
val constraintLayout = findViewById(R.id.constraintLayout) as ConstraintLayout
val imageView = ImageView(this)
imageView.setImageResource(R.drawable.android_logo)
constraintLayout.addView(imageView)
}
如果您有xml格式的图像视图
:-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// get reference to ImageView
val imageView = findViewById(R.id.iv_click_me) as ImageView
}
如果要在运行时
初始化图像视图
:-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_image_view_example)
val constraintLayout = findViewById(R.id.constraintLayout) as ConstraintLayout
val imageView = ImageView(this)
imageView.setImageResource(R.drawable.android_logo)
constraintLayout.addView(imageView)
}
如果您有xml格式的图像视图
:-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// get reference to ImageView
val imageView = findViewById(R.id.iv_click_me) as ImageView
}
谢谢,我还有一个问题,如果我们在companion对象中定义onCreate,那么所有其他视图都应该定义为静态?@vinaykumar我们不能在companion下定义onCreate,也不能在onCreate下定义companion。是的,我被括号弄糊涂了。我得到了它。谢谢你的帮助。如果你觉得它有用,请接受答案,这样其他人可能会觉得它有用:)是的,是的,我试图提高投票率,但我没有足够的声誉,再次感谢:)谢谢你,我还有一个问题,所以如果我们在companion对象中定义onCreate,那么所有其他视图都应该静态定义?@vinaykumar我们不能在companion下定义onCreate,也不能在onCreate下定义companion。它应该是类级访问。是的,我被括号弄糊涂了。我得到了它。谢谢你的帮助。如果你觉得它有用,请接受答案,这样其他人可能会觉得它有用:)是的,是的,我试图提高投票率,但我没有足够的声誉,再次感谢:)这是因为val imageView=imageView(this)imageView.setImageResource(R.drawable.android_徽标)此val imageView的Ths=imageView(此)imageView.setImageResource(R.drawable.android_徽标)