[Day 26] Android Studio 七日陨石开发:嘘! 我正在监听这个元件

前言

昨天我们设计好UI介面後,
我们有一堆按钮和文字框的"元件",
要让这些元件活起来,我们必须"绑定"元件,
将元件与Kotlin程序码互相连结。

例如:将按钮绑定到Kotlin中的函数,使得按下按钮後可以出现特定文字或是改变颜色。
而元件也可以被不同的"事件"触发,
像是短按和长按就是不同"事件",

我们藉由"监听"元件,使得当特定"事件"发生时,可以执行"绑定後"的功能。


监听器范例(click button to open the camera)

  1. 官网范例
    绑定元件、设定button变数: val button: Button = findViewById(R.id.corky)
    监听"click事件": button.setOnClickListener(this)
    设定button被click时的功能: fun onClick(...)
class ExampleActivity : Activity(), OnClickListener {
  
    protected fun onCreate(savedValues: Bundle) {
        val button: Button = findViewById(R.id.corky)
        button.setOnClickListener(this)
    }

    // Implement the OnClickListener callback
    fun onClick(v: View) {
        // do something when the button is clicked
    }
}
  1. 专案范例(打开相机传送拍照结果)
    绑定btn_photo+监听click事件: findViewById<Button>(R.id.btn_photo).setOnClickListener {...}
    开启照相机、存相片到intent: MediaStore.ACTION_IMAGE_CAPTURE
    发送intent: startActivityForResult(intent, 0 )
  • intent右边的"0"是requestCodeonActivityResult(後几天会介绍)会根据requestCode判断接收到的对象
findViewById<Button>(R.id.btn_photo).setOnClickListener {
    //建立一个相片的 Intent 物件
    val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
    startActivityForResult(intent, 0)
}

其他监听器?

除了OnClickListener(短按)之外,常用的还有:

  1. OnLongClickListener (长按)
  2. OnKeyListener (按键)
  3. OnTouchListener (按到、滑到)
  4. OnCheckedChangeListener (状态改变)

<<:  中阶魔法 - this 指向(一)

>>:  Proxmox VE 启用客体机复写及搭配迁移功能使用

NetSuite Glossary

NetSuite NetSuite 是一个 Oracle 主打中型公司的云端 ERP 系统, 其中包...

[Day 06] Sass - Partials

这篇文章会讲解如何将Sass分成多个档案模组化管理,并於编译时只会编译到同一个css档案内 首先,我...

[30天 Vue学好学满 DAY14] prop & emit-1

组件中经过引用、连接,会产出树状关系图,即为父元件与子元件的关系。 -> 父子元件中不存在继承...

【Day 1】大纲 / 30 天的学习计画

身为一个普大的普通大学生, 实战经验少得可怜, 除了学过资工基本学科,就只会用 Python 写 L...

DAY21聚类演算法(DBSCAN)

昨天介绍完DBSCAN演算法,今天就要来写DBSCAN程序: 首先利用昨天创建好资料 首先先设置r ...