实现短按长按的方法
调用函数
方法 |
参数 |
参数解释 |
返回值 |
备注 |
setOnClickListener |
lambda表达式 |
lambda的参数为发生点击动作的View,返回值Unit |
Unit |
相当于override fun onClickListener(v:View) |
setOnLongClickListener |
lambda表达式 |
lambda的参数为发生点击动作的View,返回值Boolean(true表示这个事件已经消耗完了,false表示事件继续传递,会触发一次短按事件) |
Unit |
相当于override fun onLongClick(v:View):Boolean |
例子
1 2 3 4 5 6 7
| btn.setOnClickListener { toast("click") } btn.setOnLongClickListener { toast("Long Click") true }
|
使用内部类
例子
1 2 3 4 5 6 7 8 9 10
|
private inner class MyClickListener : View.onClickListener { override fun onClick(v:View) { toast.("您点击了:${(v as Button).text}") } }
|
实现接口
让当前Activity实现OnClickListener
和OnLongClickListener
两个接口
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class MainActivity : AppCompatActivity() , OnClickListener, OnLongClickListener { override fun onClick(v: View?) { var text:TextView = findViewById(R.id.text) text.append("hello world\n") }
override fun onLongClick(v: View?): Boolean { toast("哎呀,一直按着人家干什么啦~~") return true }
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var start:FloatingActionButton = findViewById(R.id.start) start.setOnLongClickListener(this) start.setOnClickListener(this) } }
|