Android 開發事件響應之基於監聽的事件響應

Android 開發事件響應之基於監聽的事件響應

本文將介紹Android 操作系統如何通過監聽來實現對事件的響應。

Android 開發事件響應之基於監聽的事件響應 背景介紹 Android 開發事件響應類型 內部類 匿名內部類 外部類 直接綁定標簽 總結

背景介紹

對於任何可視化開發來說,都會涉及到對控件的響應。我們通過舉例:實現對Button 按鈕的點擊來講解Android 裡面對事件相應的辦法。

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 操作系統如何去響應事件,本文主要講解的是通過監聽的方式。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。