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