首页 > 代码库 > 看看事件监听怎么回事儿

看看事件监听怎么回事儿

以Button控件为例。

 

Button拥有一个onClick事件

通过setOnClickListener(OnClickListener对象)方法添加监听点击事件。

 

由于该方法内部需要一个OnClickListener对象,那么由此可以说,实现监听至少有三种方式

            1. 匿名内部类 (实现OnClickListener接口)

            2. 独立类 实现(实现OnClickListener接口)

            3. 让该类实现 (实现OnClickListener接口)

由于这是Java基础,就不过多废话了。

 

以下以一个简单的case带过:

建工程

image

建一个log过滤器

image

image

布局文件里这样写

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <Button        android:id="@+id/btn1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true"        android:layout_marginLeft="100dp"        android:layout_marginTop="28dp"        android:text="Button" /></RelativeLayout>

在MainActivity.java中如下写:

package com.example.listenertest;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener{    private Button btn;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                btn = (Button) findViewById(R.id.btn1);        btn.setOnClickListener(this);                            }    @Override    public void onClick(View v)     {        Log.i("tag","事件被监听到了");    }}

imageimage

实际上、事件监听机制貌似就是这样,别的先别管,后面再来。

看看事件监听怎么回事儿