我正在學習如何在Android Studio中開發應用程序並剛剛開始。 我學到了2種處理按鈕點擊事件的方法。一個是實現OnClickListener,而另一個是去XML,只使用Android:OnClick。第二種方法對我來說要容易得多。第一種方法有什麼優點,或者只知道第二種方法就夠了?OnclickListener vs OnClick
感謝 Nigpig
我正在學習如何在Android Studio中開發應用程序並剛剛開始。 我學到了2種處理按鈕點擊事件的方法。一個是實現OnClickListener,而另一個是去XML,只使用Android:OnClick。第二種方法對我來說要容易得多。第一種方法有什麼優點,或者只知道第二種方法就夠了?OnclickListener vs OnClick
感謝 Nigpig
差異OnClickListener VS之間的OnClick:
OnClickListener是需要實現,並且可以設定爲在Java代碼視圖的接口。
OnClickListener是等待某人實際點擊的按鈕,onclick確定當有人點擊時會發生什麼。
最近,android爲一個名爲android:onclick的視圖添加了一個xml屬性,可以直接在視圖的活動中處理點擊,而無需實現任何接口。
兩者的功能相同,只是通過java代碼設置,另一個通過xml代碼設置。
setOnClickListener代碼實現:
Button button = (Button) findViewById(R.id.mybutton);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yourMethod(v);
}
});
public void yourMethod(View v) {
// does something very interesting
}
XML實現:
// method to be written in the class
public void yourMethod(View v) {
// does something very interesting
}
//XML file
<?xml version="1.0" encoding="utf-8"?>
<!-- layout elements -->
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
android:onClick="yourMethod" />
兩者都是相同的性能。在編譯時,Xml被預解析爲二進制代碼。所以在Xml中沒有頭腦。
請在詢問前先查找答案。這裏有足夠的解釋你正在尋找什麼。看一看Here
onClick
和OnClickListeners
對於簡單的程序有相同的功能。但是當涉及到複雜的程序時,onClick
無法提供OnClickListeners
的功能。
有幾個原因可能導致您想要以編程方式設置OnClickListener
。首先,如果您想在應用程序運行時更改按鈕的行爲。您可以完全將您的按鈕指向另一種方法,或者通過設置一個不起任何作用的OnClickListener
來禁用按鈕。
當您使用onClick
屬性定義偵聽器時,該視圖僅在其主機活動中查找具有該名稱的方法。以編程方式設置OnClickListener
可讓您從除主機活動以外的某個位置控制按鈕的行爲。這是碎片的一個重要組成部分,基本上是迷你活動,允許您在自己的生命週期中構建可重用的視圖集合,然後將它們組合到活動中。片段總是需要使用OnClickListeners
來控制它們的按鈕,因爲它們不是活動,並且不會搜索在onClick
中定義的聽衆。
參考http://stackoverflow.com/questions/21319996/android-onclick-in-xml-vs-onclicklistener – sasikumar