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

第一行代码让我很困惑:它看起来像是一个新对象的解密,但这是一种方法吗?我只是不理解这个代码,如果你能帮助我理解它,我可以继续我的任务:)

还有两个问题:如果我在屏幕上有几个按钮,它们都共享同一个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;
    }
}   

由于每个视图都附加了单独的侦听器,因此每个事件都可以识别出它属于哪个视图

使用以下方法

步骤1您的类应该实现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);

步骤3编写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
        }

相关内容

  • 没有找到相关文章

最新更新