2013-02-13 112 views
0

我指定一个按钮侦听到多个按钮,像这样: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(); 
    } 
}; 

因为它是,它只是显示一个吐司与“按钮点击”显示。我希望它能够检测哪个按钮被点击,可能是通过该按钮的名称或ID(如XML中定义的),并根据它显示。这样可以通过代码检索信息吗?

回答

0

获取资源ID View#getId()

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