在onClick方法中先判断不同按钮的键值,再分别处理。最后将每个Button对象都注册这个OnClickListener
可我觉得这种做法不好,想为每个Button对象单独设置一个OnClickListener,不过Eclipse提示出错:buttonListener2 cannot be resolved.
是不是每个class只可以有一个同类型的Listener?
如果是的,那怎么办?
8 个解决方案
#1
你可以在这个Listener中通过View参数来判断是哪个button的事件,也可以分别给每个button匿名实现OnClickListener接口
#2
什么是匿名实现接口?
#3
好吧,楼主该好好学习了。。可以在OnClickListener方法里面判断是点击的哪个按钮,
#4
奶茶MM
#5
继承OnClickListener接口,然后在该方法根据id判断你得点击的按钮,然后执行相关操作就可了!
#6
楼主可以在初始化按钮(findviewbyid)下面紧接着写响应事件,每一个按钮都可以继承一个onclicklistener,直接把点击事件写在public void onclick(View view)这个函数里面即可;当然,你也可以写一个整合的listener函数,在里面判断当前按下的是哪一个button,在把点击事件写在相应的if里面,都是可以的。
#7
button1.setOnClickListener(new View.onClickListener(){
...
});
button2.setOnClickListener(new View.onClickListener(){
....
});
明白了吧 你自己的那个主类不要实现 onClickListener 这个接口
...
});
button2.setOnClickListener(new View.onClickListener(){
....
});
明白了吧 你自己的那个主类不要实现 onClickListener 这个接口
#8
btn1.setOnClickListener(btnListener);
btn2.setOnClickListener(btnListener);
}
private OnClickListener btnListener = new OnClickListener()
{
@Override
public void onClick(View myView)
{
Button btn = (Button) myView;
switch (btn.getId())
{
case R.id.btn1:
Toast.makeText(mainActivity.this, "点击了Button 1", Toast.LENGTH_LONG).show();
break;
case R.id.btn2:
Toast.makeText(mainActivity.this, "点击了Button 2", Toast.LENGTH_LONG).show();
break;
}
}
};
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
#1
你可以在这个Listener中通过View参数来判断是哪个button的事件,也可以分别给每个button匿名实现OnClickListener接口
#2
什么是匿名实现接口?
#3
好吧,楼主该好好学习了。。可以在OnClickListener方法里面判断是点击的哪个按钮,
#4
奶茶MM
#5
继承OnClickListener接口,然后在该方法根据id判断你得点击的按钮,然后执行相关操作就可了!
#6
楼主可以在初始化按钮(findviewbyid)下面紧接着写响应事件,每一个按钮都可以继承一个onclicklistener,直接把点击事件写在public void onclick(View view)这个函数里面即可;当然,你也可以写一个整合的listener函数,在里面判断当前按下的是哪一个button,在把点击事件写在相应的if里面,都是可以的。
#7
button1.setOnClickListener(new View.onClickListener(){
...
});
button2.setOnClickListener(new View.onClickListener(){
....
});
明白了吧 你自己的那个主类不要实现 onClickListener 这个接口
...
});
button2.setOnClickListener(new View.onClickListener(){
....
});
明白了吧 你自己的那个主类不要实现 onClickListener 这个接口
#8
btn1.setOnClickListener(btnListener);
btn2.setOnClickListener(btnListener);
}
private OnClickListener btnListener = new OnClickListener()
{
@Override
public void onClick(View myView)
{
Button btn = (Button) myView;
switch (btn.getId())
{
case R.id.btn1:
Toast.makeText(mainActivity.this, "点击了Button 1", Toast.LENGTH_LONG).show();
break;
case R.id.btn2:
Toast.makeText(mainActivity.this, "点击了Button 2", Toast.LENGTH_LONG).show();
break;
}
}
};
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});