2013-05-15 37 views
-3

我正在看/閱讀一些關於Android應用程序開發的教程。而且我學到了分配按鈕的onclick方法的兩種不同方式。一個是宣佈它在XML:分配按鈕的onclick方法的兩種方法

<Button 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/button_send" 
android:onClick="sendMessage" /> 

另一種是通過查找ID按鈕:

Button myBtn = (Button) findViewById(R.id.button1); 
myBtn.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     //do something...   
    } 
}); 

我的問題是:什麼是每種方法的差異(優勢和劣勢),如果效率是不同的,其中一個比另一個更快,所以它通常是首選?

+2

還有一個,實現界面 –

+0

[Here](http://stackoverflow.com/questions/4153517/how-exactly-does-the-androidonclick-xml-attribute-differ-from-setonclicklistene)你有一個答案。 – mmBs

+0

@ mmBs哦,謝謝,所以他們幾乎完全相同。 – Arch1tect

回答

0

效率差別不會重要,因爲它是如此之小,但我的猜測是,XML的方法是稍快,因爲它避免了創建對象。

然而,這種假設無論從任何鏈接通過XML比對象創建開銷較小做的開銷。

我的建議是:不要擔心那裏的東西是非常執行幾次的情況下,小的效率優勢。

-1

通常它更容易只是把按鈕的佈局,然後代碼的方法在活動課。您也可以使用button.setOnTouchListener並檢測按鈕是否已按下或未按下(以實現聲音會在按下時改變按鈕的背景)。

至於你描述的,我只用它的時候我有一個列表視圖,並在列表中的每個項目是由一個TextView和一個按鈕的第一個方法。所以我需要每個按鈕來調用一個單一的方法。 我希望能回答你的問題。

+0

問題不在setOnTouchListener的上下文中 –