1. 程式人生 > >一步一步學android之事件篇——單擊事件

一步一步學android之事件篇——單擊事件

在使用軟體的時候單擊事件必不可少,比如我想確定、取消等都需要使用者的單擊,所有的單擊事件都是由View.OnClickListener介面來進行處理的,介面定義如下:

public static interface View.OnClickListener{
		public void onClick(View v) {
		
		}
	}

下面同樣寫個例子來看下如何監聽單擊事件:

執行效果:


單擊前的效果


單擊後的效果

main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="請輸入資訊...">
    </EditText>

    <Button
        android:id="@+id/bt_show"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="顯示EditText裡面的內容到下面的TextView中" />

    <TextView
        android:id="@+id/tv_show"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="我是用來顯示EditText內容的TextView,點選上面的按鈕我就能顯示" />

</LinearLayout>

MainActivity.java:

package com.example.clickdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
	//定義三個用到的元件
	private Button bt_show;
	private EditText info;
	private TextView tv_show;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
	}
	//單獨寫個方法初始化元件
	private void initView(){
		//從xml中獲取Button,xml中id的作用
		bt_show = (Button)super.findViewById(R.id.bt_show);
		//從xml中獲取EditText
		tv_show = (TextView)super.findViewById(R.id.tv_show);
		//從xml中獲取TextView
		info = (EditText)super.findViewById(R.id.info);
		
		//為Button按鈕新增單擊事件
		bt_show.setOnClickListener(new MyClickListener());
	}
	//定義監聽處理程式
	private class MyClickListener implements OnClickListener{

		public void onClick(View v) {
			// TODO Auto-generated method stub
			//首先獲取EditText中的內容
			String temp = info.getText().toString();
			//再把內容設定到TextView中
			tv_show.setText(temp);
		}
		
	}
	
}

第一次使用findViewById()方法,說明一下這個方法的作用是取得在xml中的元件,如果沒取元件就用會報空指標異常,然後是使用setOnClickListener()方法來為對按鈕監聽,這裡是定義了一個內部類來實現OnClickListener介面,然後在OnClick方法中實現自己的邏輯(單擊後要做的事情)。

上面的程式碼還可以修改為不使用內部類,畢竟我們只用一次,所以改成下面的使用匿名內部類的方法:

MainActivity.java:

package com.example.clickdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
	//定義三個用到的元件
	private Button bt_show;
	private EditText info;
	private TextView tv_show;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
	}
	//單獨寫個方法初始化元件
	private void initView(){
		//從xml中獲取Button,xml中id的作用
		bt_show = (Button)super.findViewById(R.id.bt_show);
		//從xml中獲取EditText
		tv_show = (TextView)super.findViewById(R.id.tv_show);
		//從xml中獲取TextView
		info = (EditText)super.findViewById(R.id.info);
		
		//為Button按鈕新增單擊事件
		bt_show.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//首先獲取EditText中的內容
				String temp = info.getText().toString();
				//再把內容設定到TextView中
				tv_show.setText(temp);
			}
		});
	}
}

效果是一樣的,今天就說到這裡了。

相關推薦

android事件——事件

在使用軟體的時候單擊事件必不可少,比如我想確定、取消等都需要使用者的單擊,所有的單擊事件都是由View.OnClickListener介面來進行處理的,介面定義如下: public static interface View.OnClickListener{ publ

xamarin android如何監聽事件

在xamarin android單擊事件是最基礎的事情,看過菜鳥上的android教程時,java寫的都是監聽事件,為一個按鈕,單選按鈕、多選按鈕的單擊事件有三種,前面兩種用的非常普遍,也很簡易,我這裡主要就是寫一下xamarin android中的監聽事件。 1.使用委託

安卓觸控事件事件的區別

在學習了安卓的觸控事件和單擊事件後,我做了一個小實驗,從中總結出它們之間的區別。 實驗如下: 首先在activity_main.xml檔案中製作一個簡單的按鈕 在Java  class檔案中設定對按鈕的單擊監聽,和觸控監聽: package com.example.a

OpenLayers3入門-事件

單擊事件的繫結 在OpenLayers的官方API中有專門的事件函式(ol.interaction),對於事件的繫結也比較方便,但OL沒有右鍵事件,繫結事件的物件是針對整個地圖物件,對相應的地圖層操作時需要對event物件深加工,需要進一步判斷和提取物件。 第一步: va

android事件——選按鈕監聽事件

在平常使用軟體的時候,我們經常會碰見一些選擇題,例如選擇性別的時候,在男和女之間選,前面說過這個情況要用RadioGroup元件,那麼點選了之後我們該怎麼獲取到選擇的那個值呢,這就是今天要說的OnCheckedChangeListener方法。這個方法定義如下: publ

android事件——焦點事件

焦點事件其實就是當我們操作那個元件時獲取的事件,比如發簡訊,在我們點選輸入框輸入內容的時候就獲取了焦點,今天的例子也是用EditText來完成的,下面來看看焦點事件OnFocusChangeListener的使用,效果如下: 大概的效果就是:當第一個EditText獲取焦

android禁用Appt2(andriod studio3.0)

唔,你的問題是什麼呢?1)上方提示R檔案缺失?2)Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs fo

android控制元件——ListView自定義顯示資料格式

上一篇部落格說了ListView的基本使用,這篇將是對ListView的使用進行一個提高,在日常生活中,如果單單給你看一些圖片,你可能都不知道這個圖片表達的什麼意思,但是要是在圖片旁邊寫的備註或者加個名字,我們就會很清楚的知道這張圖片是什麼,所以就要使用到SimpleAda

8教你開啟Android門 NDK入門教程

第0步:下載工具好了,讓我們開始吧。你需要下載NDK。我們先開始下載,因為在下載的過程中你可以檢查一下確保你所需要用到的其餘工具的版本都正確。從Android網站下載適合你的作業系統的NDK。現在,對照下列檢查你的工具版本:如果在Windows下,Cygwin 1.7或更高版

從零開始 Web jQuery(七)事件冒泡,事件參數對象,鏈式編程原理

eval uri turn 定位 return 也會 否則 ont sele 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客

解決Extjs次雙會觸發兩次事件,和次雙事件

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興! 給我老師的人工智慧教程打call!http://blog.csdn.net/ji

一起AndroidLayout

本文簡述在Android開發中佈局的簡單應用,屬於基礎知識,僅供學習分享使用。 概述 在Android UI開發中,佈局型別主要有兩種:LinearLayout(線性佈局)和RelativeLayout(相對佈局),兩種佈局型別各有各的優勢與使用場景。 LinearLayout(線性佈局) 線性佈局允

一起AndroidIntent

本文簡述在Android開發中Intent的常見應用,僅供學習分享使用。 什麼是Intent?   Intent負責對應用中一次操作的動作、動作涉及資料、附加資料進行描述,Android則根據此Intent的描述,負責找到對應的元件,將 Intent傳遞給呼叫的元件,並完成元件的呼叫。因此,Intent在

23、從頭AndroidContentProvider

應用場景: 在Android官方指出的Android的資料儲存方式總共有五種,分別是:Shared Preferences、網路儲存、檔案儲存、外儲儲存、SQLite。但是我們知道一般這些儲存都只是在單獨的一個應用程式之中達到一個數據的共享,而且這些知識在前面我都有介紹,有

一起AndroidToggleButton和Switch

本文以一個簡單的小例子,簡述在Android開發中ToggleButton(開關按鈕)和Switch(開關)的簡單使用,僅供學習分享使用。 概述 ToggleButton是一個有兩種狀態(checked/unchecked)的按鈕,經常用於開/關等場景中,預設文字顯示(ON/OFF),Switch 是一個

從零開始 Web DOM(七)事件冒泡

>大家好,這裡是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... > +------------------------------------------------------------ > github:https://github.com/Dao

從零開始 Web jQuery(七)事件冒泡,事件引數物件,鏈式程式設計原理

一、事件冒泡與阻止事件冒泡 事件冒泡:當一個元素觸發某個事件的時候,會把這個事件傳播到其父元素,一直到頂層元素。 阻止事件冒泡:在被觸發事件的子元素中新增 return false; 即可。 二、事件的觸發 之前講的繫結事件是事件觸發後的事件處理過程,並且上面的事件觸發是被動的事件觸發,怎麼可以主動觸發事

一起AndroidListView

foo 每一個 .get 知識點 mar inf 布局 textview item 本文以一個小例子,簡述Android開發中ListView的相關應用,僅供學習分享使用。 概述 ListView是一個顯示可滾動項目列表的視圖組(view group),列表項通過適配器(A

一起AndroidGridView

itemid 一起學 數字 ems mat and led pri viewgroup 本文以一個簡單的小例子,簡述Android開發中GridView的常見應用,僅供學習分享使用。 概述 GiridView是一個表格顯示資源的控件,可以在兩個可滾動的方向上顯示。列表項的資

ListView的兩種監聽某項的事件的方法

第一種,通過Adapter的parent.getAdapter()方法來獲取 adapter=new FirstListViewAdapter(list,getActivity());