Button之常用事件

来源:http://www.cnblogs.com/Renyi-Fan/archive/2017/08/04/7288079.html
-Advertisement-
Play Games

Button之常用事件 一、簡介 二、方法 三、代碼實例 四、易錯點 ...


Button之常用事件

一、簡介

1、button介紹

本文介紹了Buttonn的點擊事件,觸摸事件,獲得焦點事件

 介面分別為:OnClickListener,OnTouchListener,OnFocusChangeListener

這些事件並不是button才會有,別的控制項也會有

2、button類結構

button繼承的TextView,用法也幾乎一樣

 

二、方法

 這個沒啥說的,直接看實例吧

 

三、代碼實例

效果圖:

 

 

 

代碼:

fry.Activity01

 1 package fry;
 2 
 3 import com.example.buttonDemo1.R;
 4 
 5 import android.app.Activity;
 6 import android.os.Bundle;
 7 import android.view.MotionEvent;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.view.View.OnFocusChangeListener;
11 import android.view.View.OnTouchListener;
12 import android.widget.Button;
13 
14 public class Activity01 extends Activity implements OnClickListener,OnTouchListener,OnFocusChangeListener {
15     private Button btn_one;
16     private Button btn_two;
17     int value=1;
18     
19 
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         // TODO Auto-generated method stub
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity01);
25         btn_one = (Button) findViewById(R.id.btn_one);
26         btn_two = (Button) findViewById(R.id.btn_two);
27         btn_one.setOnClickListener(this);
28         btn_two.setOnClickListener(this);//觸摸監聽器
29         btn_two.setOnTouchListener(this);
30         btn_two.setOnFocusChangeListener(this);
31     }
32 
33     @Override
34     public void onClick(View v) {
35         // TODO Auto-generated method stub
36         Button btn = (Button) v;
37         int width = getWindow().getWindowManager().getDefaultDisplay()
38                 .getWidth();
39         /*
40          * value等於1表示擴大
41          * 等於-1表示縮小
42          */
43         if (btn.getWidth() < 100&&value==-1) {
44             value=1;
45         } else if (btn.getWidth() >= width&& value==1) {
46             value=-1;
47         }
48         btn.setWidth(btn.getWidth()+(int)(btn.getWidth()*0.1*value));
49         btn.setHeight(btn.getHeight()+(int)(btn.getHeight()*0.1*value));
50 
51     }
52 
53     @Override
54     public boolean onTouch(View v, MotionEvent event) {
55         // TODO Auto-generated method stub
56         int action=event.getAction();//事件類型
57         if(action==MotionEvent.ACTION_DOWN){//按下
58             btn_two.setBackgroundResource(R.drawable.button2);
59         }else if(action==MotionEvent.ACTION_UP){//鬆開
60             btn_two.setBackgroundResource(R.drawable.button1);
61         }
62         //如果點擊事件被處理,就傳回true,否則false
63         //也就是如果傳true,事件被處理,onClick就不處理這個點擊事件了
64         return false;
65     }
66 
67     @Override
68     public void onFocusChange(View v, boolean hasFocus) {
69         // TODO Auto-generated method stub
70         if(hasFocus){//獲得焦點
71             btn_two.setBackgroundResource(R.drawable.button2);
72         }
73         else if(!hasFocus){//失去焦點
74             btn_two.setBackgroundResource(R.drawable.button1);
75         }
76     }
77 }

/buttonDemo1/res/layout/activity01.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6     
 7     <Button 
 8         android:id="@+id/btn_one"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:text="按鈕一"
12         ></Button>
13     
14     <Button 
15         android:id="@+id/btn_two"
16         android:layout_width="wrap_content"
17         android:layout_height="wrap_content"
18         android:background="@drawable/button1"
19         ></Button>
20 
21 </LinearLayout>

 

 

 

四、易錯點

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • css如何實現這樣的樣式: 解決方案: 這裡需要用到的技術是border-image的靈活運用,首先需要一張圖片,這裡我選中的是這樣子的,此後 的圖片可以拿這個更改圓形的顏色以更改鋸齒顏色: 底部透明,正方形,ps截圖如下: 好了,下麵咱們就開始真正的代碼: html: <section class ...
  • svg就相當於字體,如何將生成的svg導入到自己的項目中去呢? 1、將類似下麵的文件放入自己的項目中: 2、生成的svg中有一個style.css文件,將裡面的內容拷貝到你的css中,然後更改上圖的路徑即可: 在你的css文件將上圖中的style.css文件拷貝進去即可,如下圖: 註意路徑哦~ 1、 ...
  • meta基礎知識 meta基礎知識 H5頁面視窗自動調整到設備寬度,並禁止用戶縮放頁面 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,us ...
  • 一、vertical-align 一)定義:定義行內元素的基線相對於該所在基線的垂直對齊。(只針對行類塊inline/inline-block/<img>,塊級不適用!) 二)語法: 三)某些數值: 四)何為基線呢??關於基線 有這樣的說法: 像不像我們小時候寫的英文字母的線,實在是太TMD像了,對 ...
  • 一直在寫伺服器端,最近在用Netty-NIO編寫聊天。web端用JS實現聊天界面……js用得不多,於是下了一個仿微信的JS Demo。裡面用到了vue.js庫。 殘忍的源碼: 大概600行,但是對於我這個菜鳥來說,過多的了。 代碼裡面沒註釋,名稱寫得也非常亂(單個字母為主,太恐怖了。。。),又沒接觸 ...
  • index.html detail.html 最終效果圖 ...
  • 常見寫法: 下麵總結常見的響應式佈局的分類: ...
  • 如何使得塊元素全屏居中,這裡有兩種方法,下麵進行一一描述: 1、在已知塊元素的寬和高的情況下: 下麵舉例說明,如下圖圖片所示,小狗狗的圖片上下左右居中: 2、在不知道元素的寬和高的情況下: 使用transform,將上面類Media改成下麵這樣也可實現。 3、塊居中常識 a)、使用margin:0 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...