-3

这些天我正在观看/阅读一些关于 Android 应用程序开发的教程。而且我已经学会了两种不同的方法来分配按钮的 onclick 方法。一种是在 XML 中声明:

<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...           
    }
});

我的问题是:每种方法有什么区别(优点和缺点),如果效率不同,一种方法比另一种方法快,所以通常首选?

4

2 回答 2

0

效率差异并不重要,因为它是如此之小,但我的猜测是 XML 方法稍微快一些,因为它避免了对象创建。

但是,这假定通过 XML 完成的任何链接的开销都小于对象创建开销。

我的建议:不要担心在执行次数很少的情况下会产生小的效率优势。

于 2013-05-15T06:43:50.253 回答
-1

通常将按钮放在布局中然后在活动类中编写方法会更容易。您还可以使用 button.setOnTouchListener并检测按钮是否已按下或未按下(以实现在按下按钮时更改按钮背景的声音)。

至于您描述的第一种方法,我只在有一个列表视图并且列表中的每个项目由一个文本视图和一个按钮组成时才使用它。所以我需要这些按钮中的每一个来调用一个方法。我希望这能回答你的问题。

于 2013-05-15T06:42:07.570 回答