欢迎来到酷云建站平台,全网营销云系统加盟中心!

海量企业网站模板 · 任您选择

美出特色,精出品质,一切为了企业更好的营销

隐藏侧栏
Beta
转载

Android开发中添加事件监听器的方法有哪些?

       小程序     2021-12-16     admin     35     0    

我想从事徐州APP开发公司的朋友都知道,Android应用属于典型的事件驱动类型。不像命令行或脚本程序,事件驱动型应用启动后,即开始等待行为事件的发生,如用户单击某个按钮。(事件也可以由操作系统或其他应用触发,但用户触发的事件更直观。)

应用等待某个特定事件的发生,也可以说应用正在“监听”特定事件。为响应某个事件而创建的对象叫作监听器(listener)。监听器是实现特定监听器接口的对象,用来监听某类事件的发生。无需自己编写,Android SDK已经为各种事件内置开发了很多监听器接口。当前应用需要监听用户的按钮“单击”事件,因此监听器需实现View.OnClickListener接口。

首先处理TRUE按钮。在QuizActivity.java文件中,在onCreate(...)方法的变量赋值语句后输入下列代码,如下代码所示。

为TRUE按钮设置监听器(QuizActivity.java)

...

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_quiz);

mTrueButton = (Button) findViewById(R.id.true_button);

mTrueButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Does nothing yet, but soon!

}

});

mFalseButton = (Button) findViewById(R.id.false_button);

}

}

(如果遇到View cannot be resolved to a type的错误提示,请使用Option+Return或Alt+Enter快捷键导入View类。)

在以上代码中,我们设置了一个监听器。当按钮mTrueButton被点击后,监听器会立即通知我们。传入setOnClickListener(OnClickListener)方法的参数是一个监听器。该参数是一个实现了OnClickListener接口的对象。

使用匿名内部类

传入SetOnClickListener(OnClickListener)方法的监听器参数是一个匿名内部类(anonymous inner class)实现,语法看上去稍显复杂,不过南昌APP制作开发公司小编在这里告诉一个助记小技巧给大家:最外层括号内的全部实现代码就是传入SetOnClickListener(OnClickListener)方法内的一个参数。该参数就是新建的一个匿名内部类的实现代码。

mTrueButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Does nothing yet, but soon!

}

});

所有的监听器都可以以匿名内部类来实现,这样做有以下两个好处:

第一:因为匿名内部类的使用,我们可在同一处实现监听器方法,代码更清晰可读;

第二:事件监听器一般只在同一处使用,使用匿名内部类可避免不必要的命名类实现。

匿名内部类实现了OnClickListener接口,因此它也必须实现该接口唯一的onClick(View)方法。onClick(View) 方法的代码暂时是一个空结构。虽然实现监听器接口需要实现onClick(View)方法,但具体如何实现由使用者决定,因此即使是空的实现方法,编译器也可以编译通过。

参照以下代码为FALSE按钮设置类似的事件监听器。

为FALSE按钮设置监听器(QuizActivity.java)

...

mTrueButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Does nothing yet, but soon!

}

});

mFalseButton = (Button) findViewById(R.id.false_button);

mFalseButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Does nothing yet, but soon!

}

});

}


--结束END--

本文链接: http://www.83703228.cn/start/2394.html (转载时请注明来源链接)

 
本文标签: 全部

下班PC阅读不方便?

手机也可以随时学习开发

微信关注公众号“酷云”
"酷云平台前端开发教学"
每日干货技术分享
 

×

成为 酷云平台 代理商!

关注

微信
关注

微信扫一扫
获取最新优惠信息

酷云平台公众号

客服

联系
客服

很高兴为您服务
尊敬的用户,欢迎您咨询,我们为新用户准备了优惠好礼。 咨询客服

联系客服:

在线QQ: 3206174

客服电话: 0516-83703228

售前咨询 售后服务
在线交谈 智能小云

工作时间:

周一至周五: 09:00 - 17:00

WAP

手机
访问

移动端访问
手机上也能选模板

酷云平台手机端