Botton進一步了解(點擊事件)

點擊事件和長按事件

  • 監聽器:專門監聽控件的動作行為。只有控件發生了指定的動作,監聽器才會觸發開關區執行對應的代碼邏輯。
  • 按鈕控件有兩種常用的監聽器:
    • 點擊監聽器:通過setOnClickListener方法設置。按鈕被按住少于500ms時會觸發點擊事件。
    • 長按監聽器:通過setOnLongClickListener方法設置。按鈕被按住超過500ms時,會觸發長按事件。

點擊事件

只有一個按鈕
  • 示例代碼
package com.example.chapter03import android.annotation.SuppressLint
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.DateUtilclass ButtonClickActivity : AppCompatActivity() {@SuppressLint("MissingInflatedId")override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_button_click)val tv_result: TextView = findViewById(R.id.tv_result)val btn_click_single: Button = findViewById(R.id.btn_click_single)btn_click_single.setOnClickListener(MyOnClickListener(tv_result))    // 實例化類的一個對象出來}// 創建一個類 MyOnClickListener ,來實現 View.OnClickListener 接口class MyOnClickListener(private val tv_result: TextView) : View.OnClickListener {override fun onClick(p0: View?) {val dsec = String.format("%s 您點擊了按鈕: %s", DateUtil.getNowTime(), (p0 as Button).text)tv_result.text = dsec  // kotlin不用set(),也不用get()}}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_click_single"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="指定單獨的點擊監聽器"android:textColor="#000000"android:textSize="15sp"/><TextViewandroid:id="@+id/tv_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="5dp"android:gravity="center"android:textColor="#000000"android:textSize="15sp"android:text="查看按鈕點擊的結果"/>
</LinearLayout>
  • 運行結果
    在這里插入圖片描述

(穿插kotlin小筆記)
(構造器傳參 簡寫)

class MyOnClickListener: View.OnClickListener {private val tv_result: TextViewconstructor(tv_result: TextView) {this.tv_result = tv_result}
}// 改進
class MyOnClickListener(private val tv_result: TextView) : View.OnClickListener {}
有兩個按鈕
  • 示例代碼
package com.example.chapter03import android.annotation.SuppressLint
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.DateUtilclass ButtonClickActivity : AppCompatActivity() {@SuppressLint("MissingInflatedId")override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_button_click)val tv_result: TextView = findViewById(R.id.tv_result)val btn_click_single: Button = findViewById(R.id.btn_click_single)btn_click_single.setOnClickListener(MyOnClickListener(tv_result))    // 實例化類的一個對象出來val btn_click_public: Button = findViewById(R.id.btn_click_public)btn_click_public.setOnClickListener(MyOnClickListener(tv_result))}// 創建一個類 MyOnClickListener ,來實現 View.OnClickListener 接口class MyOnClickListener(private val tv_result: TextView) : View.OnClickListener {override fun onClick(p0: View?) {val dsec = String.format("%s 您點擊了按鈕: %s", DateUtil.getNowTime(), (p0 as Button).text)tv_result.text = dsec  // kotlin不用set(),也不用get()}}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_click_single"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="指定單獨的點擊監聽器"android:textColor="#000000"android:textSize="15sp"/><Buttonandroid:id="@+id/btn_click_public"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="指定公共的點擊監聽器"android:textColor="#000000"android:textSize="15sp"/><TextViewandroid:id="@+id/tv_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="5dp"android:gravity="center"android:textColor="#000000"android:textSize="15sp"android:text="查看按鈕點擊的結果"/></LinearLayout>
  • 結果
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211668.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211668.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211668.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2023濟南大學acm新生賽題解

通過答題情況的難度系數&#xff1a; 簽到&#xff1a;ACI 銅牌題&#xff1a;BG 銀牌題&#xff1a;EF 金牌題&#xff1a;DHJKO 賽中暫未有人通過&#xff1a;LMNP A - AB Problem 直接根據公式計算就行。 #include<stdio.h> int main(){int a,b;scanf("%…

安卓MediaRecorder(2)錄制源碼分析

文章目錄 前言JAVA new MediaRecorder() 源碼分析android_media_MediaRecorder.cpp native_init()MediaRecorder.java postEventFromNativeandroid_media_MediaRecorder.cpp native_setup() MediaRecorder 參數設置MediaRecorder.prepare 分析MediaRecorder.start 分析MediaRec…

當前 .NET SDK 不支持面向 .NET X.0 (如8.0)問題的解決方案

如果您加載方案或運行時出現如下錯誤時&#xff1a; 當前 .NET SDK 不支持面向 .NET 8.0。請面向 .NET 7.0 或更低版本&#xff0c;或者使用支持 .NET 8.0 的 .NET SDK 版本。從 https://aka.ms/dotnet/download 下載 .NET SDK (項目名稱).Domain C:\Program Files\dotnet\…

Windows在cmd中執行bat腳本

在Linux中執行腳本常用的是sh或者直接輸入腳本名稱即可。 sh shell腳本.sh # 或者 shell腳本.sh在Windows中類似&#xff0c;使用start或者直接輸入腳本名稱。 start bat腳本.bat :: 或者 bat腳本.bat

【Angular開發】Angular在2023年之前不是很好

做一個簡單介紹&#xff0c;年近48 &#xff0c;有20多年IT工作經歷&#xff0c;目前在一家500強做企業架構&#xff0e;因為工作需要&#xff0c;另外也因為興趣涉獵比較廣&#xff0c;為了自己學習建立了三個博客&#xff0c;分別是【全球IT瞭望】&#xff0c;【架構師酒館】…

SSL證書更新

首先&#xff0c;我們需要理解為什么需要更新SSL證書。SSL證書的有效期通常為一年。一旦證書過期&#xff0c;瀏覽器會顯示警告&#xff0c;提示用戶該網站的SSL證書已經過期&#xff0c;這可能會導致用戶對網站的信任度下降&#xff0c;甚至直接離開網站。此外&#xff0c;一些…

【Python】手把手教你用tkinter設計圖書管理登錄UI界面(一)

下一篇&#xff1a; 本項目將分段設計“圖書管理登錄UI界面”的用戶登錄、用戶注冊、用戶賬號找回等。主要圍繞GUI標準庫tkinter、以及類的繼承&#xff08;重點&#xff09;來設計本項目。 首先新建一個文件夾命名為“圖書管理系統項目”&#xff0c;并在其目錄下新建文件夾…

【分治】最接近點對Python實現

文章目錄 [toc]問題描述一維最接近點對算法Python實現 二維最接近點對算法分治算法時間復雜性Python實現 問題描述 給定平面上 n n n個點&#xff0c;找其中的一對點&#xff0c;使得在 n n n個點組成的所有點對中&#xff0c;該點對的距離最小 一維最接近點對算法 Python實…

LED透鏡粘接UV膠是一種特殊的UV固化膠,用于固定和粘合LED透鏡。

LED透鏡粘接UV膠是一種特殊的UV固化膠&#xff0c;用于固定和粘合LED透鏡。 它具有以下特點&#xff1a; 1. 高透明度&#xff1a;LED透鏡粘接UV膠具有高透明度&#xff0c;可以確保光線的透過性&#xff0c;不影響LED的亮度和效果。 2. 快速固化&#xff1a;經過UV紫外線照射…

CPU、MCU、MPU、DSP、FPGA各是什么?有什么區別?

1、CPU 中央處理器&#xff0c;簡稱 CPU&#xff08;Central Processing Unit&#xff09;&#xff0c;中央處理器主要包括兩個部分&#xff0c;即控制器、運算器&#xff0c;其中還包括高速緩沖存儲器及實現它們之間聯系的數據、控制的總線。 電子計算機三大核心部件就是CPU…

力扣257. 二叉樹的所有路徑(遞歸回溯與迭代)

題目&#xff1a; 給你一個二叉樹的根節點 root &#xff0c;按 任意順序 &#xff0c;返回所有從根節點到葉子節點的路徑。 葉子節點 是指沒有子節點的節點。 示例 1&#xff1a; 輸入&#xff1a;root [1,2,3,null,5] 輸出&#xff1a;["1->2->5","…

[隴劍杯 2021]簡單日志分析

[隴劍杯 2021]簡單日志分析 題目做法及思路解析&#xff08;個人分享&#xff09; 問一&#xff1a;某應用程序被攻擊&#xff0c;請分析日志后作答&#xff1a; 黑客攻擊的參數是______。&#xff08;如有字母請全部使用小寫&#xff09;。 題目思路&#xff1a; 分析…

C++牛客知識點2

提示&#xff1a;接上文 文章目錄 前言一、pandas是什么&#xff1f;二、使用步驟 1.引入庫2.讀入數據總結 前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&#xff1a; 例如&#xff1a;隨著人工智能的不斷發展&#xff0c;機器學習這門技術也越來越重要&#xff0…

http與https的區別,以及生產環境配置https的幾種方式

http HTTP(超文本傳輸協議)是一種用于傳輸和處理超文本文檔的協議。HTTP使用客戶端-服務器模型。客戶端通過HTTP請求協議向服務器發送請求&#xff0c;服務器則使用HTTP響應協議返回響應。HTTP協議通常使用TCP/IP作為底層傳輸協議&#xff0c;但它也可以使用其他傳輸協議。 H…

sql注入學習

基礎查詢語句&#xff1a; 給指定字段添加數據 insert into 表名(字段名1,字段名2,.....) values(值1,值2,......); 給全部字段添加數據 insert into 表名 values (值1,值2,.....);--無限制條件的修改,會修改整張表 update 表名 set 字段 值; --有限制條件的修改,只修改特定記…

軟件設計師——計算機網絡(二)

&#x1f4d1;前言 本文主要是【計算機網絡】——軟件設計師——計算機網絡的文章&#xff0c;如果有什么需要改進的地方還請大佬指出?? &#x1f3ac;作者簡介&#xff1a;大家好&#xff0c;我是聽風與他&#x1f947; ??博客首頁&#xff1a;CSDN主頁聽風與他 &#x1…

Promise介紹和使用

Promise Promise是一門新的技術&#xff08;ES6規范&#xff09;&#xff0c;JS中進行異步編程的新解決方案。&#xff08;舊的方案是使用回調函數&#xff0c;比如AJAX請求&#xff09;。 從語法上來說Promise是一個構造函數。 從功能上來說Promise對象用來封裝一個異步操作并…

生成式AI賦能千行百業加速創新,2023亞馬遜云科技re:Invent行業盤點

2023亞馬遜云科技re:Invent全球大會已于上周圓滿閉幕&#xff0c;在本次大會中&#xff0c;亞馬遜云科技又為大家帶來了很多功能/項目迭代更新&#xff0c;也重磅發布了很多全新的功能。今天從行業視角來盤點回顧哪些重磅發布適用于垂直行業客戶&#xff0c;以及面向汽車、制造…

ChatGLM3-6B和langchain阿里云部署

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、ChatGLM3-6B部署搭建環境部署GLM3 二、Chatglm2-6blangchain部署三、Tips四、總結 前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&#xff1a; …

ffmpeg之ffprobe.c源碼分析一---大流程及核心代碼分析

文章目錄 前言為什么學習ffprobe源碼源碼調試main()函數重要流程函數分析open_input_file函數分析avformat_match_stream_specifier函數分析read_packets函數分析本篇文章帶你打通ffprobe源碼的脈絡。 關注公眾號免費看: 前言 注:本文章全憑個人經驗以及平時學習所記錄,由…