Day 3 | 物件控制与事件监听

绑定:将xml中的元件与Kotlin程序码做连结。

监听事件:开发者可以在程序码中拦截使用者的操作过程。

元件绑定

在Ch2的练习中有帮每一个元件设定了ID,此ID也可用於在程序码中识别特定元件,查看MainActivity.kt可查看到下述程序码

setContentView(R.layout.activity_main)

此段程序码正是透过R类别指定要使用的layout档为activity_main.xml,也就是将R.layout.activity_main作为参数传递给setContentView()方法,以完成元件与程序码绑定

而针对XML中的元件则使用

val ed_name = findViewByID<EditText>(R.id.ed_name)

findViewByID()方法会依据传入参数(R.id.xxx)的识别标签,从XML找到对应的元件传回至程序码中。

由於findViewByID()型态为View,View型态是所有元件的原始类别,故需要明确告知此元件类型,例如上段程序码中加入了,将View型态转型(Casting)成EditText

当编写完findViewByID()後会发现显示「Unresolved reference」,这是因为它们来自其他套件,此时只要点选有问题的元件,按下Alt+Enter後,就会自动汇入程序码

事件监听

常见的四种监听器,可以用「setOn」在AS中筛选可用监听器

  1. OnClickListener

    • 短按点击
    btn_mora.OnClickListener{
    }
    
  2. OnLongClickListener

    • 长按点击(超过1秒)
    btn_mora.OnLongClickListener{
    		false
    }
    
  3. OnTouchClickListener

    • 触摸(手指按下、手指放开、滑动)
    btn_mora.OnTouchClickListener{ v,event ->
    		false
    }
    
  4. OnCheckedChangeListener

    • 状态改变(如RadioButton、Checkbox、Switch)
    btn_mora.OnCheckedChangeListener{ group,checkedId ->
    }
    

    TextView可以透过.text修改文字内容,但EditText必须将字串传入setText()方法才能修改,所以开发者可以用toString()方法,将回传资料转换成字串类型使用


<<:  从 React 开始,让你的网页material-ui起来 [Day 3] 排版布局Container

>>:  写给MLOps人才培育苦手 | MLOps落地指南 - 团队篇

[Day24]Funny Encryption Method

上一篇介绍了What's Cryptanalysis? ,这题要我们找出下列几行内,英文字母共出现几...

【DAY 22】Algorithm - Insertion sort 插入排序法

前面我们提过了 Bubble sort,这次我们要来从题目来看另一种排序的演算法 —— Insert...

【第十四天 - Linked list介绍】

Q1. linked list是什麽 是一种资料结构,透过很多节点(Node)串接成一个 linke...

Day 19 : 深度学习(神经网络)自动建模术 - AutoMLs

随着 ML/DL 模型研究屡有突破,现今模型训练成果已经相当具有水准,但如果需要藉由手动选择最佳的...

OpenStack Neutron 介绍 2

本系列文章同步发布於笔者网站 上一篇介绍了 Neutron 的架构,接下来两篇将会接续介绍 Neut...