Android - 按钮侦听器知道单击了哪个按钮

时间:2013-02-13 03:00:55

标签: android

我正在为多个按钮分配一个按钮监听器,如下所示:

    for(Button b : buttons)
    {
        b.setOnClickListener(clicklisten);
    }

按钮侦听器定义如下:

private OnClickListener clicklisten = new OnClickListener()
{
    public void onClick(View v)
    {
        Context context = getApplicationContext();
        text = Toast.makeText(context, " Button Clicked", Toast.LENGTH_SHORT);
        text.show();
    }
};

实际上,它只显示一个带有“按钮点击”显示的Toast。我想要检测单击哪个按钮,可能是通过该按钮的名称或ID(如XML中所定义),并根据该按钮显示。是否可以通过代码以这种方式检索该信息?

2 个答案:

答案 0 :(得分:0)

View#getId()获取资源ID。

View.OnClickListener myOnlyhandler = new View.OnClickListener() {
  public void onClick(View v) {
      if( button1.getId() == ((Button)v).getId() ){
          // it was the button1
      }
      else if( button2.getId() == ((Button)v).getId() ){
          // it was the button2
      }
  }
}

答案 1 :(得分:0)

或者你可以写这样的...... 在onClick方法中传递的视图v是...被点击的按钮..所以你可以检查该视图是否等于你的任何按钮......

View.OnClickListener myOnlyhandler = new View.OnClickListener() {
  public void onClick(View v) {
      if( button1.equals(v)){
          // it was the button1
      }
      else if( button2.equals(v)){
          // it was the button2
      }
  }
}