我想在这里阅读有关处理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
}