Android 添加按钮的最佳方式是什么?

Android 添加按钮的最佳方式是什么?,android,android-button,Android,Android Button,我是android开发新手。我有点怀疑。 我知道你可以添加一个按钮并初始化它,就像 Button b1=(Button) findViewById(R.id.button1); 我还可以在XML文件中给出函数名 android:onClick="click_event" 我的疑问是,哪种方法是最好和有效的? 就像上面说的那样,最好使用@string资源,而不是硬编码的资源。我想你可能会感到困惑。你举的例子是两件不同的事情 添加按钮 这条线 Button b1=(Button) findV

我是android开发新手。我有点怀疑。 我知道你可以添加一个按钮并初始化它,就像

Button b1=(Button) findViewById(R.id.button1);
我还可以在XML文件中给出函数名

  android:onClick="click_event"
我的疑问是,哪种方法是最好和有效的?
就像上面说的那样,最好使用@string资源,而不是硬编码的资源。

我想你可能会感到困惑。你举的例子是两件不同的事情

添加按钮

这条线

Button b1=(Button) findViewById(R.id.button1);
不添加按钮。它声明并初始化一个Button实例,该实例引用当前膨胀xml中id为button1的按钮

因此,在xml中,您将有一个

<Button
     android:id="@+id/button1"
     <!-- other properties -->
/>
但在xml中通常更容易实现,因为在这里您必须以编程方式为它提供参数、属性,并将其添加到膨胀的布局中

OnClick

至于onClick,这取决于你觉得在你的情况下什么是最容易和最好的。我经常这样用xml来声明它,但是可以用几种方法来实现。使用这种方法,您只需确保您有一个这样的函数,它是公共的,并且只接受一个参数,并且该参数必须是视图

我还更改了名称,使您的xml

<Button
     android:id="@+id/button1"
     <!-- other properties -->
     android:onClick="clickEvent"/>

请注意,最后一种需要在活动声明中添加实现OnClickListener的方法

public class MyActivity extends Activity implements OnClickListener
{
您还可以创建自己的单击侦听器,方法是将其更改为

Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // code here
    }
});
b1.setOnClickListener(myBtnClick);
public OnClickListener myBtnClick = new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // click code here      
    }
};
然后创建一个实例,如下所示

Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // code here
    }
});
b1.setOnClickListener(myBtnClick);
public OnClickListener myBtnClick = new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // click code here      
    }
};
您可以对多个按钮使用此选项,并打开id或检查视图参数以了解单击了哪个按钮,或为不同的按钮创建单独的侦听器