我想从事南昌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!
}
});
}
以上就是南昌APP开发公司-百恒网络为大家介绍的几种Android开发中添加事件监听器的方法,如果还有哪些不懂的地方,可随时来电和我们联系,我们一定为您解答疑惑。此外,如有网站建设、微信开发、APP开发、网站推广等方面的需要,百恒可随时为您服务,咨询热线:400-680-9298(免长途费)