基于事件监听的处理
对于有一定java基础的开发者,一定对事件监听很熟悉,因为在SWING/AWT中会用到这种事件监听的
处理。下面让我来详细说明这种处理模型!
在事件监听的处理模型中,主要涉及事件源、事件和事件监听器这三类对象。
事件源:通常就是各个组件,如按钮,菜单等;
事件:就是一次用户的操作。
事件监听器:监听事件源发生的事件,并对各事件进行相应的响应。
处理。下面让我来详细说明这种处理模型!
在事件监听的处理模型中,主要涉及事件源、事件和事件监听器这三类对象。
事件源:通常就是各个组件,如按钮,菜单等;
事件:就是一次用户的操作。
事件监听器:监听事件源发生的事件,并对各事件进行相应的响应。
下面我们看它们之间的调用关系:
从上面的程序中,我们可以知道基于事件监听的编程步骤:
1、获取事件源
2、实现事件监听的类
3、给事件源注册事件监听器,调用setXXXListener()方法
1、获取事件源
2、实现事件监听的类
3、给事件源注册事件监听器,调用setXXXListener()方法
下面我们给出一个小例子,主要功能就是实现单击按钮之后改变文本框的内容。
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class EventTest extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取应用程序中的bn按钮
Button button = (Button)findViewById(R.id.button);
//为按钮绑定事件监听器。
button.setOnClickListener(new MyFirstClickListener());
}
//定义一个单击事件的监听器
class MyFirstClickListener implements View.OnClickListener
{
//实现监听器类必须实现的方法,该方法将会作为事件处理器
@Override
public void onClick(View v)
{
EditText txt = (EditText)findViewById(R.id.txt);
txt.setText("Hello,事件监听!");
}
}
}