我正在为多个按钮分配一个按钮监听器,如下所示:
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中所定义),并根据该按钮显示。是否可以通过代码以这种方式检索该信息?
答案 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
}
}
}