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

标签 android android-button

我是 Android 开发的新手。我有疑问。 我知道你可以添加一个按钮并像这样初始化它

Button b1=(Button) findViewById(R.id.button1);

我还可以在 XML 文件中给出函数名称。

  android:onClick="click_event"

我的疑问是,哪种方法最好且最有效? 就像它说最好使用 @string 资源而不是硬编码资源。

最佳答案

我觉得你很困惑。你给出的例子是两个不同的东西。

添加按钮

这一行

Button b1=(Button) findViewById(R.id.button1);

不添加 Button。它声明并初始化 Button 的实例,该实例引用您当前膨胀的 xml 中的 Button,它的 idbutton1

所以在你的 xml 中你会有某处

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

您可以使用

以编程方式添加一个 Button
Button bt1 = new Button(this);
// give it properties

但在 xml 中通常更容易做到,因为在这里您必须以编程方式为其提供参数、属性,并将其添加到膨胀的 layout

点击时

onClick() 而言,它取决于您认为在您的情况下最简单和最好的方法。我喜欢经常像那样在 xml 中声明它,但您可以通过多种方式进行声明。使用这种方法,你只需要确保你有一个像这样的函数,它是 public 并且只接受一个参数,并且该参数必须是一个 View

 public void clickEvent(View v)
{
    // code here
}

我还更改了名称,因此您的 xml 会像

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

你也可以在你的 Java 中设置 onClick()

Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // code here
    }
});

 Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(this);

    @Override
    public void onClick(View v)
    {
        // code here
    }

请注意,您需要在 Activity 声明中添加 implements OnClickListener 的最后一种方法

public class MyActivity extends Activity implements OnClickListener
{

您还可以创建自己的点击 Listener,方法是将其更改为类似的内容

b1.setOnClickListener(myBtnClick);

然后用类似的东西创建它的实例

public OnClickListener myBtnClick = new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // click code here      
    }
};

您可以将此用于多个 Button 并打开 id 或检查 View 参数以了解哪个 Button 被点击或为不同的 Button 创建单独的 Listeners

关于android - 添加按钮的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18319711/

相关文章:

Android如何在按钮上设置背景颜色

android - 如何以编程方式设置gridview的高度android

android - 呈现问题 :Binary XML file line #-1: No start tag found

android - 如何将异步数据传递给 Android Widget

java - 在 picasso 和 viewpager 制作的 slider 图像中添加下一个、上一个按钮

android-layout - 如何强制我的复选框文本不换行?

java - 如何在 Android 中使用 RecyclerView?

android - 如何在 Android 上禁用方向更改?

java - Android MediaPlayer 意外停止

android - 向 textView 添加多个值 - Android