2013-05-15 38 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的上下文中 –