【问题标题】:Which is the best way to add a button?添加按钮的最佳方法是什么?
【发布时间】:2013-08-21 14:22:14
【问题描述】:

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

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

我也可以在 XML 文件中给出一个函数名。

  android:onClick="click_event"

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

【问题讨论】:

    标签: android android-button


    【解决方案1】:

    我认为你很困惑。你举的例子是两个不同的东西。

    添加按钮

    这一行

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      相关资源
      最近更新 更多