如何解决在java / android中注册监听器,一个小问题
| 我想在这里阅读有关处理UI事件的信息。我非常了解Java,但从未如此 有机会写了一个GUI,所以我对听众了解不多。无论如何,他们使用 一种我从未见过的技术,这就是我的意思// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
第一行代码使我感到困惑:它看起来像是对新对象的声明,但随后
它的方法?我只是不理解这段代码,如果您能帮助我理解它,我可以继续我的工作:)
P.s.还有两个问题:如果我在屏幕上有几个按钮,它们都共享相同的onCLick()方法?如果是这样,我怎么知道单击了哪个?
谢谢!
解决方法
嗨,你也可以这样写
公共类testActivity扩展Activity实现OnClickListener {
并添加此方式...
ImageButton Ibutton = (ImageButton) findViewById(R.id.button_1);
Ibutton.setOnClickListener(this);
ImageButton Ibutton2 = (ImageButton) findViewById(R.id.button_2);
Ibutton2.setOnClickListener(this);
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button_1:
// action to preform on button 1
Toast.makeText(testActivity.this,\"Button 1 pressed \",Toast.LENGTH_SHORT).show();
break;
case R.id.button_2:
// action to preform on button 1
Toast.makeText(testActivity.this,\"Button 2 pressed \",Toast.LENGTH_SHORT).show();
break;
}
}
, 由于每个视图都附加有单独的侦听器,因此每个事件都可以识别出它属于哪个视图
使用以下方法
step1您的类应实现OnclickListener例如
public class A implements OnClickListener
步骤2将onclicklistener添加到所有按钮
button1 = (Button) findViewById(R.id.btn1);
button2 = (Button) findViewById(R.id.btn2);
button3 = (Button) findViewById(R.id.btn3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
step3编写onClickMethod的实现
@Override
public void onClick(View view) {
if (view == button1) {
//do button1 click action
} else if (view ==button2) {
//do button2 click action
} else if (view == button3) {
//do button3 click action
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。