我有View和一个CircleShape,它应该在此视图中显示吐司.我在主Activity中使用它.这是我的界面
interface OnClickListenerInterface {
fun onClick()
}
Run Code Online (Sandbox Code Playgroud)
它是我的视图中的CircleShape(在我的xml中是View)和监听器.我想在我的Activity中实现OnClick.
var listener: OnClickListenerInterface? = null
mCircleShape.setOnClickListener(View.OnClickListener {
if (listener == null) return@OnClickListener
listener!!.onClick()
})
Run Code Online (Sandbox Code Playgroud)
我知道,在Kotlin getter和setter通用自动机,但我如何设置监听器,如果它是私有的.它是我的Activity的代码,但它不起作用
CircleShape.listener = object :OnClickListenerInterface{
override fun onClick() {
ToastUtils.showSuccessMessage(getContext(),"pressed")
}
}
Run Code Online (Sandbox Code Playgroud)
我应该如何在Kotlin中使用Callback,onClickListenere?
我想将 Epoxy 用于带有 kotlin 的 recyclerView,但 Epoxy Model 没有生成 PostModel_() 类,它有什么问题?
@EpoxyModelClass(layout = R.layout.iteam)
abstract class PostModel : EpoxyModelWithHolder<PostModel.PostHolder>() {
@EpoxyAttribute
lateinit var userName: String
@EpoxyAttribute
lateinit var avatarIcon: Drawable
@EpoxyAttribute
lateinit var post: Drawable
override fun bind(holder: PostHolder) {
holder.avatarIcon.setImageDrawable(avatarIcon)
holder.post.setImageDrawable(post)
holder.name.text = userName
}
class PostHolder : BaseEpoxyHolder() {
@BindView(R.id.name)
lateinit var name: TextView
@BindView(R.id.ic_avatar)
lateinit var avatarIcon: ImageView
@BindView(R.id.post)
lateinit var post: ImageView
}
}
Run Code Online (Sandbox Code Playgroud) 这种类型的构造函数有什么不同?
class ColorsArray(context: Context) {}
Run Code Online (Sandbox Code Playgroud)
和
class ColorsArray(var context: Context){}
Run Code Online (Sandbox Code Playgroud)