2015-10-27 42 views
0

我正在學習如何在Android Studio中開發應用程序並剛剛開始。 我學到了2種處理按鈕點擊事件的方法。一個是實現OnClickListener,而另一個是去XML,只使用Android:OnClick。第二種方法對我來說要容易得多。第一種方法有什麼優點,或者只知道第二種方法就夠了?OnclickListener vs OnClick

感謝 Nigpig

+2

參考http://stackoverflow.com/questions/21319996/android-onclick-in-xml-vs-onclicklistener – sasikumar

回答

4

差異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中沒有頭腦。

0

請在詢問前先查找答案。這裏有足夠的解釋你正在尋找什麼。看一看Here

0

onClickOnClickListeners對於簡單的程序有相同的功能。但是當涉及到複雜的程序時,onClick無法提供OnClickListeners的功能。

有幾個原因可能導致您想要以編程方式設置OnClickListener。首先,如果您想在應用程序運行時更改按鈕的行爲。您可以完全將您的按鈕指向另一種方法,或者通過設置一個不起任何作用的OnClickListener來禁用按鈕。

當您使用onClick屬性定義偵聽器時,該視圖僅在其主機活動中查找具有該名稱的方法。以編程方式設置OnClickListener可讓您從除主機活動以外的某個位置控制按鈕的行爲。這是碎片的一個重要組成部分,基本上是迷你活動,允許您在自己的生命週期中構建可重用的視圖集合,然後將它們組合到活動中。片段總是需要使用OnClickListeners來控制它們的按鈕,因爲它們不是活動,並且不會搜索在onClick中定義的聽衆。