編輯:關於Android編程
本文將介紹Android 操作系統如何通過監聽來實現對事件的響應。
Android 開發事件響應之基於監聽的事件響應 背景介紹 Android 開發事件響應類型 內部類 匿名內部類 外部類 直接綁定標簽 總結
對於任何可視化開發來說,都會涉及到對控件的響應。我們通過舉例:實現對Button 按鈕的點擊來講解Android 裡面對事件相應的辦法。
在Android 開發中,有兩種方式可以對事件作出響應,分別是:
- 基於監聽的事件處理
- 基於回調的事件處理
在本文,我們重點分析基於基於監聽的事件處理,主要有五種實現方式:
- 內部類
- 內部匿名類
- 外部類
- 直接綁定標簽
- Activity 本身作為事件監聽標簽
我個人對第五種方式無感,所以在這裡我不做詳細的介紹了。
內部類是我們最為常用的方法,首先需要使用setOnClickListener 來綁定處理響應消息的類:
// 內部類
button2.setOnClickListener(new MyOnClickListener());
然後在你設計的Activity中,建立一個內部類:
public class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v){
Toast.makeText(getApplicationContext(), "內部類", Toast.LENGTH_SHORT).show();
}
}
個人認為內部類是首推的方法,因為你可以設計一個內部類,接受所有button 響應的消息。
下面是一個匿名內部類的例子:
// 內部匿名類
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "內部匿名類", Toast.LENGTH_SHORT).show();
}
});
外部類,通俗來說就是新建立一個.java文件來編寫對Button 點擊事件的響應,下面是一個例子,OuterClass 是我編寫的需要響應Button 事件的類:
import android.app.Activity;
import android.view.View;
import android.widget.Toast;
/**
* Created by zhi on 2015/4/24.
*/
public class OuterClass implements View.OnClickListener{
private Activity act;
OuterClass(Activity activity){
act = activity;
}
@Override
public void onClick(View v){
Toast.makeText(act,"外部類", Toast.LENGTH_SHORT).show();
}
}
因為Toast 需要一個Activity 參數,所以構建這個類的時候需要設置這個變量。
並且在調用時,將參數傳遞過去:
// 外部類
button3.setOnClickListener(new OuterClass(this));
直接綁定標簽,是指在xml 文件中,做設置,如下面的例子:
在布局文件中,有onClick標簽,制定該button 綁定的函數。
提示: 這裡“clickButton” 是要處理消息的函數名,不需要加括號
在.java 文件中,編寫clickButton 方法:
// 直接綁定
public void clickButton(View source){
Toast.makeText(getApplicationContext(),"綁定標簽", Toast.LENGTH_SHORT).show();
}
提示:這裡需要注意,函數的名字可以隨意命名,但是參數一定要符合(View source) 這種形式,不然程序會直接崩潰。
本文主要是介紹Android 操作系統如何去響應事件,本文主要講解的是通過監聽的方式。
Google已經建議Android開發全部轉向Android Studio開發,Android Studio 是使用gradle編譯、打包的,那麼問題來了,gradle可
一、 Android分發機制概述: Android如此受歡迎,就在於其優秀的交互性,這其中,Android優秀的事件分發機制功不可沒。那麼,作為一個優秀的程序員,要想做
隨著蘋果向iPhone6以上的機型推送VoLTE高清語音通話運營商配置更新文件,更多網友開始關注這一新的語音技術,那麼現在國內有哪些手機是支持VoLTE高清
引言Android在3.0中引入了Fragments的概念,其目的是用在大屏幕設備上–例如平板電腦上,支持更加動態和靈活的UI設計。平板電腦的屏幕要比手機的大