编程很多按钮!

时间:2011-04-13 16:22:07

标签: android user-interface layout

我的布局中有25个按钮。了解单击哪个按钮或获取其ID的有效方法是什么?

提前致谢..

5 个答案:

答案 0 :(得分:1)

Button实现View.OnClickListener,它接收已单击的视图。您可以按以下方式获取ID ...

@Override
public void onClick(View view) {
    int Id = view.getId();
}

答案 1 :(得分:0)

根据Android documentation for an Activity,查找视图的唯一方法是通过findViewById。如果您想在设置具有特定ID的按钮时执行某些操作,则必须单独为每个按钮添加onClickListeners。

答案 2 :(得分:0)

我不知道问题在哪里

布局xml中的

为每个按钮添加onClick =“onClick”,然后在活动广告功能

public void onClick(View v) {
  switch(v.getId()){
    case R.id.Button1:
      break;
    case R.id.Button2:
      break;
    case R.id.Button3:
      break;
//....
  }
}

编辑(因为我无法向其他人添加奖励回答: @Zach Rattner

根据这个http://developer.android.com/reference/android/widget/Button.html Zach,你错了

  

然而,而不是申请   OnClickListener到你的按钮   活动,您可以指定方法   使用的XML布局中的按钮   android:onClick属性

答案 3 :(得分:0)

这样的事情应该有效:

Button button1 = (Button)findViewById(R.id.Button01);
    Button button2 = (Button)findViewById(R.id.Button02);

    private class myListener implements OnClickListener
    {

        @Override
        public void onClick(View arg0) {

            if (arg0 == button1)
            {
                //button 1 clicked
            }
            else if (arg0 == button2)
            {
                //button 2 clicked
            }
            //etc 
        }

    }

    myListener listener = new myListener();

    button1.setOnClickListener(listener);
    button2.setOnClickListener(listener);

答案 4 :(得分:0)

执行此操作的标准方法是在XML布局文件中声明每个具有唯一 id 的按钮,如下所示:

<Button android:id="@+id/my_button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/my_button_text"/>

请注意,您必须为每个按钮执行此操作。

接下来,您可以使用以下代码作为按钮侦听器:

final Button button1 = (Button) findViewById(R.id.my_button1);
     button.setOnClickListener(new View.OnClickListener() {
          public void onClick(View v) {
               // Perform action on click
          }
     });

这将是低效的,因为你将创建25个新的View.OnClickListener对象(每个按钮一个),并且由于你是针对内存受限设备的Android编程,所以最好创建一个一个监听器并将其分配给每个按钮,然后检查View v对应的按钮。

我希望你不要在一个屏幕上放25个按钮。如果是,您可能想重新考虑您的设计。