五大監聽方式:匿名內部類 內部類 外部類 介面類 繫結標籤
匿名內部類
bt1.setonclicklistener(new view.onclicklistener()
});
大部分時候,事件處理器都沒有什麼利用價值(可利用**通常都被抽象成了業務邏輯方法),因此大部分事件器更合適,實際上,這種形式是目前是最廣泛的事件***形式。上面的程式**就是匿名內部類來建立事件監對於使用匿名內部類作為***的形式來說,唯一的缺點就是匿名內部類的語法有點不易掌握
內部類
public
class
secondactivity
extends
activity
//內部類
class
myclick
implements
view.onclicklistener
}}
將事件***類定義成當前類的內部類。1、使用內部類可以在當前類中復用***類,因為***類是外部類內部類的兩個優勢。上面**就是內部類的形式!
外部類
//activity類中
bt2.setonclicklistener(new iclick());
//iclick類中
import android.util.log;
import android.view.view;
public
class
iclick
implements
view.onclicklistener
}
使用外部類定義事件***類的形式比較少見,主要因為如下兩個原因: 1、事件***通常屬於特定的gui介面,定義成外部類不籃球提高程式的內聚性。 2、外部類形式的事件***不能自由訪問建立gui介面的類中的元件,程式設計不夠簡潔。 但如果某個事件***確實需要被多個gui介面所共享,而且主要是完成某種業務邏輯的實現,則可以考慮使用
介面類
public
class
threeactivity
extends
activity
implements
view.onclicklistener
@override
public
void
onclick(view arg0)
}
可以直接在activity中定義事件處理方法
其中優點為:非常簡潔
缺點為:
1.這種形式可能造成程式結構混亂。activity的主要職責應該是完成介面初始化;但此時還需包含事件處理器方法,從而引起混亂
2.如果activity介面類需要實現***介面,讓人感覺比較怪異
繫結標籤
//在xml檔案中
"@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignleft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_margintop="39dp"
android:text="button"
android:onclick="clickhandle" />
//在活動活動中新增乙個clickhandle函式
private
static final string tag = "begin"
public
void
clickhandle(view source)
為button按鈕繫結乙個事件處理方法:clickhanlder,這意味著開發者需要在該介面布局對應的activity中定處理該按鈕上的單擊事件 Android監聽USB插拔事件
android監聽usb插拔事件有兩種方式 一種是在mainifest.xml中註冊 android.hardware.usb.action.usb device attached即在usb插入是的action意圖。在android.hardware.usb.usbmanager類中有多種actio...
Android 監聽螢幕解鎖事件
在做乙個程式的時候,需要時刻保持某一服務是啟動的,因此想到了通過監聽螢幕screen on和screen off這兩個action。奇怪的是,這兩個action只能通過 的形式註冊,才能被監聽到,使用androidmanifest.xml 完全監聽不到。查了一下,發現這是powermanager那邊...
安卓開發 button事件監聽
事件監聽的listener,有以下幾種方式 1 宣告乙個普通的class,實現onclicklistener介面,然後在button的setonclicklistener中new該類的乙個物件。2 使用匿名內部類,直接 btn.setonclicklistener new onclicklisten...