Button初了解

Button

  • 由TextView派生而来,二者的区别有:

    • Button有默认的按钮背景,TextView默认无背景
    • Button的内部文本默认居中对齐,而TextView的默认靠左对齐
    • 2023年以前,Button默认将英文换为大写,而TextView保持原始的英文大小写。现在,都默认保持原始英文。
      Button初了解_第1张图片
  • 与TextView相比,Button新增两个属性:

    • textAllCaps:指定了是否将英文字母转为大写,true则转大写,false则不做转换。
      Button初了解_第2张图片
    • onClick(其实已经是一个过时的属性了,但是想用也可以用):用来接管用户的点击动作,指定了点击按钮时要触发哪个方法。
      在这里插入图片描述
      (插入一个小笔记:alt+回车,可以打开提示框,帮助我们解决问题)
  • 创建一个DateUtil类

package com.example.chapter03.util

import android.icu.text.SimpleDateFormat
import java.util.Date

class DateUtil {
    /*fun getNowTime(): String {
        val sdf: SimpleDateFormat = SimpleDateFormat("HH:mm:ss")  // 创建格式化时间的实例对象
        return sdf.format(Date())  // Date()获得当前时间,Date()其实有点过时,最好用LocalDateTime(),但我不知道在kotlin怎么用
    }*/

// 不知道为什么报错了,在Activity类中调用不了getNowTime(),根据系统提示,写了如下函数
    companion object {
        fun getNowTime(): String {
            val sdf: SimpleDateFormat = SimpleDateFormat("HH:mm:ss")  // 创建格式化时间的实例对象
            return sdf.format(Date())  // Date()获得当前时间
        }
    }
}
  • Activity类
package com.example.chapter03

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView
import com.example.chapter03.util.DateUtil

class ButtonStyleActivity : AppCompatActivity() {

    private lateinit var tv_result: TextView   
    // 定义一个全局变量,为了使在onClick()中也能调用 
    // lateinit是什么还不是很明白,因为原本报错了,就根据系统提示打了出来,但听网上大佬说运行时还是可能有异常,虽然我这次运行没有问题
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_button_style)
        tv_result = findViewById(R.id.tv_result)
    }
    /*
    在安卓开发中,将控件的初始化都放在onCreate方法中,
    不在点击按钮后初始化(即不在onClick方法中findViewById),
    这样可以避免每次点击都重新执行一次findViewById,
    在onCreate中只用初始化一次即可 */

    fun doClick (view: View) {
        val dsec = String.format("%s 您点击了按钮: %s", DateUtil.getNowTime(), (view as Button).text)
        // view as Button 强制转换为View的子类Button。
        // kotlin没有get(),直接获得其属性。(不用.getText(),直接.text)
        tv_result.setText(dsec)   // 显示文本内容
    }
}
  • 效果
    Button初了解_第3张图片
    (点击完第三个按钮,就会跳出下面那句话,时间就是当前的时间)

你可能感兴趣的:(Android笔记,android)