Android事件处理之监听事件

监听事件是一种委托式的事件处理。

监听事件处理模型示意图:

Android事件处理之监听事件_第1张图片
三大对象:
1). 事件源(Event Resource):就是Android常用的View组件如:Button、TextView、ListView等
2). 事件(Event):就是Android中封装的Event的对象。
3). 事件监听器(Event Listener):就是Android中常用的OnclickListener、OnItemClickListener、OnTounchListener等

事件监听器的实现方式:
1.外部类

package com.example.demo;

import android.view.View;
import android.view.View.OnClickListener;

public class MyListener implements OnClickListener{

    @Override
    public void onClick(View v) {
        //事件处理并响应

    }

}

2.内部类

package com.example.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new MyListener ());
    }

    public class MyListener implements OnClickListener{

        @Override
        public void onClick(View v) {
            //事件处理并响应

        }

    }   
}

3.Activity自身作为监听器

package com.example.demo;

import android.app.Activity;
import android.os.Bundle;
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.btn);
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }


}

4.匿名内部类

package com.example.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity{

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });
    }

}

事件监听器的注册:
事件源.事件监听器(事件监听器事的实现)如:btn.setOnClickListener(new MyListener ());

你可能感兴趣的:(Android,android,监听事件)