1事件处理作用
应用程序是事件驱动的,所以开发应用程序时,和用户的交互主要是监听控件的事件,并处理用户事件,在用户事件的程序程序中完成对应的业务或功能
2步骤
与一般的JAVA程序中事件处理的实现步骤相同
(1)找到控件
(2)设置控件的事件监听器
(3)添加事件处理程序
3实现方法:
与一般的JAVA程序中事件处理的实现方法相同
(1)使用匿名内部类(即在设置事件监听器的同时设置一个匿名类)
(2)使用独立的类(对象)来监听控件的事件并做事件处理
(3)使用实现监听器接口的类
具体如下:
方法一
先在layout布局文件中定义一个button类型的控件并设置控件的id为btnLogin
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnLogin"
tools:ignore="HardcodedText" />
在Java文件mainActivity.xml中的mainActivity类中声明一个成员变量
Button btnLogin;
为上面的成员设置处理程序(实际上是设置事件监听器对象)
即在 onCreate方法中,使用内部匿名类来实现click事件监听事件和事件处理,需要new一个OnOnClickListener()对象
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {//实际处理button的click事件的方法
// System.out.println("wellcom!");
//自带的输出方法即通过log类的i方法来输出
Log.i("LoginTag","你好!");
}
}
然后运行项目就可以在Logcat中查看程序执行的效果了
方法二
在mainActivity内部添加一个OnClickListener监听类型的对象,并通过该对象实现用户对象的事件处理
创建一个OnClickListener类型的匿名派生类并用此派生类创建一个对象,通过此对象来监听和处理事件
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
//实现用户对象的处理onClick方法
public void onClick(View view) {
Log.i("LoginTag","你好!");
}
};
然后在oncreate方法中
使用独立对象来监听能够和处理事件即可
btnLogin.setOnClickListener(clickListener);
方法三
利用mainActivity具备监听对象的方法
public class MainActivity extends AppCompatActivity *implements View.OnClickListener*{
//咋如下定义即可
@Override
public void onClick(View view) {
btnLogin.setOnClickListener(clickListener);
}
}
评价
*方法2就相当于把方法1分成两步来写,把内部的(new View.OnClickListener() 写到外面去,比方法1麻烦所以不常用;
如果事件监听器需要独立出来用就用方法3
故方法1通过使用匿名类的方式比较常用