Android 事件监听处理

事件监听的处理模型包含三个成员:事件源、事件以及事件监听器。

基于监听的事件处理模型一般包含几个步骤:

1、获取普通界面组件;

2、实现事件监听器类

3、将监听器对象注册给普通组件

当事件源上发生指定事件的时候,Android就会触发对应事件监听器,并由事件监听器调用相应的方法来处理事件。

public class RemoteControlActivity extends Activity {
    EditText ipET;
    EditText socketET;
    Button button;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ipET = (EditText)findViewById(R.id.IpEditText);
        socketET = (EditText)findViewById(R.id.SocketEditText);
        //获取程序中名为 ConnectButton 的按钮组件
        button = (Button)findViewById(R.id.ConnectButton);
        //为按钮绑定事件监听器,并实现该监听类的方法
        button.setOnClickListener(new OnClickListener() {
        	@Override
        	public void onClick(View v) {
        		String ipnum = ipET.getText().toString();
        		int socketnum = Integer.parseInt(socketET.getText().toString());
        		Settings.ipnum =ipnum;
        		Settings.scoketnum = socketnum;
        		try {
        			DatagramSocket socket = new DatagramSocket();
        			InetAddress serverAddress = InetAddress.getByName(ipnum);
        			Intent intent = new Intent(RemoteControlActivity.this,ControlActivity.class);
        			RemoteControlActivity.this.startActivity(intent);
        			RemoteControlActivity.this.finish();
        			Toast.makeText(RemoteControlActivity.this, "连接成功", Toast.LENGTH_SHORT).show();
        		} catch (Exception e) {
        			// TODO Auto-generated catch block
        			e.printStackTrace();
        		}

        	}
        });
    }
}

从上面代码中可以看到,被监听的事件源是名字为connectbutton的按钮(即事件源),随之调用 setOnClickListener 方法将事件监听器对象 OnClickListener() 注册给事件源,并且实现了事件监听类 OnClickListener() 及其方法 onClick(View v).

这里使用匿名内部类作为事件监听器类

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-08 01:28:27

Android 事件监听处理的相关文章

Android事件监听(二)——点击鼠标事件

Button.ImageButton事件监听(setOnClickListener) 方法一:通过匿名内部类实现 代码如下: package com.note.demo2; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import

王立平--android事件监听的3种方式

第一种通常在activity组件的oncreate事件中直接定义,直接动作. 这样的方式每一个控件都定义一次.通常不方便. Button btn = (Button) findViewById(R.id.myButton); btn .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //do something } }); 另外一种一般是在activity组件实现其接口.这样能够多外控件共

Android事件监听(一)——简介篇

Button.ImageButton事件 setOnClickListener     点击时触发 ListView事件 setOnItemSelectedListener   鼠标滚动时触发 setOnItemClickListener     点击时触发 EditText事件 setOnKeyListener     获取焦点时触发 RadioGroup事件 setOnCheckedChangeListener    点击时触发 CheckBox事件 setOnCheckedChangeLi

事件监听:诀别Android繁琐的事件注册机制——view.setOnXXXXListener 滚犊子

好久没写过随笔了......windows phone生态没起来,属于.net阵营的我最近工作不是太忙,闲暇之余就心血来潮开始研究安卓.先简单扯两句这几天学习下来对java事件监听机制的一点感触.客观地讲,java的事件监听机制相比.net好原始,暂不说委托.lamda.泛型等的繁琐,仅一个事件监听,就需要各种listener才能实现,比如安卓里到处都是view.setOnXXXXListener.被C#“语法糖”和宇宙第一IDE惯坏的我真心有点不习惯,于是就决定写个工具来封装这些烦人的list

Android怎样监听蓝牙耳机的按键事件

写在前面: 直接想要代码非常easy,你直接把滚动栏拉到最底端就能够看到.假设想要十分地了解为什么,那就依照我规划的一步一步来理解.下面測试环境以手头上有的「Bluedio + 红米手机」. 1.蓝牙耳机的使用 蓝牙耳机的使用说明书中都会有相关的具体使用说明,这里拣重点说明一下.除了电源开关,耳机上一般有三个键.例如以下所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2FuZ2Vhcg==/font/5a6L5L2T/fontsize/40

Android截屏事件监听

转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/53737655 1. 前言 Android系统没有直接对截屏事件监听的接口,也没有广播,只能自己动手来丰衣足食,一般有三种方法. 利用FileObserver监听某个目录中资源变化情况 利用ContentObserver监听全部资源的变化 监听截屏快捷按键 由于厂商自定义Android系统的多样性,再加上快捷键的不同以及第三方应用,监听截屏快捷键这事基本不靠谱,可以直接忽略. 本文使用

android开发事件监听

第一种:匿名内部类作为事件监听器类 大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以使用匿名内部类形式的事件监听器更合适,实际上,这种形式是目前是最广泛的事件监听器形式.上面的程序代码就是匿名内部类来创建事件监听器的!!!对于使用匿名内部类作为监听器的形式来说,唯一的缺点就是匿名内部类的语法有点不易掌握,如果读者java基础扎实,匿名内部类的语法掌握较好,通常建议使用匿名内部类作为监听器.第二种:内部类作为监听器 将事

Android学习按键事件监听与Command模式

Android学习按键事件监听与Command模式 - Dufresne - 博客园 ? 一 Command模式 意图: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化: 对请求排队或记录请求日志,以及支持可撤销的操作. 将请求被封装成一个对象,当向某对象提交请求时,使我们可以不用去知道被具体的请求的操作或者请求的接收者, 实现了动作的请求者对象和动作的执行者对象之间的解耦合. 适用性: 使用Command模式代替callback形式的回调应用: 在不同的时刻指定.排列和执行请

Android——按钮的事件监听

关于Button按钮的四种事件监听方法总结 首先我们在activity_main.xml里面先定义一个Button空间 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" andr