Jus*_*tin 12 android button actionlistener
如何基于单击禁用来响应事件Button.我有一个要求,我必须出现Dialog,当Button点击一个残疾人但我分配的听众即使我没有开火setClickable(false)
我是一个安卓机器人,抱歉.
Ric*_*ard 12
您可以例如使用#setActivated()method代替。禁用视图将忽略所有事件。
https://developer.android.com/reference/android/view/View.html#setActivated(boolean)。然后,您可以根据android:state_activate需要使用属性来自定义文本和背景样式:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="false"
android:color="@color/a_color" />
<item android:state_activated="true"
android:color="@color/another_color" />
</selector>
Run Code Online (Sandbox Code Playgroud)
您可以重写 onTouchEvent 并创建一个侦听器,如下所示:
class MyButton @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = R.attr.materialButtonStyle) : MaterialButton(context, attrs, defStyleAttr) {
private var onDisableClickListener: OnClickListener? = null
override fun onTouchEvent(event: MotionEvent?): Boolean {
if (!isEnabled && event?.action == MotionEvent.ACTION_DOWN) {
onDisableClickListener?.onClick(this)
}
return super.onTouchEvent(event)
}
fun setOnDisableClickListener(l: OnClickListener?) {
onDisableClickListener = l
}
}
Run Code Online (Sandbox Code Playgroud)
在您的活动中:
button.setOnDisableClickListener {
Toast.makeText(this), "The button is disabled", Toast.LENGTH_SHORT).show()
}
button.setOnClickListener {
Toast.makeText(this), "The button is enabled", Toast.LENGTH_SHORT).show()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8794 次 |
| 最近记录: |