Android学习笔记(3)——按钮点击注册事件的四种写法
来源:互联网 发布:linux 程序运行权限 编辑:程序博客网 时间:2024/04/30 10:51
搬运自本人博客,xge技术博客
http://www.xgezhang.com/android_button_onclick_4_ways.html
Android下,按钮点击事件是在开发过程中经常会写到的东西。这里总结一下常见的四种写法:
界面代码就是一个button控件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<
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"
android:paddingBottom
=
"@dimen/activity_vertical_margin"
android:paddingLeft
=
"@dimen/activity_horizontal_margin"
android:paddingRight
=
"@dimen/activity_horizontal_margin"
android:paddingTop
=
"@dimen/activity_vertical_margin"
tools:context
=
"com.xgezhang.setonclick4ways.MainActivity"
>
<
Button
android:id
=
"@+id/button1"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:text
=
"Button"
/>
</
RelativeLayout
>
1.通过匿名内部类实现监听类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public
class
MainActivity
extends
Activity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button) findViewById(R.id.button1);
bt.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(MainActivity.
this
,
"way1"
, Toast.LENGTH_SHORT);
tst.show();
}
});
}
}
2.自定义一个个内部类,实现接口函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public
class
MainActivity
extends
Activity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button) findViewById(R.id.button1);
bt.setOnClickListener(
new
MyOnClickListener());
}
class
MyOnClickListener
implements
OnClickListener{
@Override
public
void
onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(MainActivity.
this
,
"way2"
, Toast.LENGTH_SHORT);
tst.show();
}
}
}
上述两种方法麻烦之初在于,如果有很多的Button,那么就需要对每一个Button都写一个类,代码比较复杂。
3.让MainActivity实现接口函数,通过switch语句判断R.id,来对不同的Button按钮做出不同的响应。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public
class
MainActivity
extends
Activity
implements
OnClickListener{
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button) findViewById(R.id.button1);
bt.setOnClickListener(
this
);
}
@Override
public
void
onClick(View v) {
// TODO Auto-generated method stub
switch
(v.getId()) {
case
R.id.button1:
Toast tst = Toast.makeText(MainActivity.
this
,
"way3"
, Toast.LENGTH_SHORT);
tst.show();
break
;
default
:
break
;
}
}
}
4.在XML文件中“显式指定按钮的onClick属性,点击按钮时会利用反射的方式调用对应Activity中的click()方法:
XML文件添加一行:
1
android:onClick="onClick"
对应Java代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public
class
MainActivity
extends
Activity{
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public
void
onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(
this
,
"way4"
, Toast.LENGTH_SHORT);
tst.show();
}
}
当然,第四种方法也可以通过switch语句判断哪一个Button被点击。
在实际开发过程中,使用最多的是第三种方法。
0 0
- Android学习笔记(3)——按钮点击注册事件的四种写法
- Android学习笔记(一):按钮点击事件的四种写法
- Android按钮单击事件的四种写法—笔记
- 安卓学习笔记——Android点击事件的四种写法
- Android学习笔记1--按钮的四种点击事件
- Android中按钮的点击事件的四种写法
- 按钮点击事件的四种写法
- Android学习(7) -- 点击事件的四种写法
- android(2):按钮点击事件的四种写法(装载)
- Andorid学习笔记(ADT)-点击事件的四种写法
- 【Andorid学习笔记】点击事件的四种写法
- Android笔记---点击事件的四种写法
- android学习之点击事件的四种写法
- Android基础学习:点击事件的四种写法
- Androidx学习笔记(4)-- 事件处理的四种写法(点击事件为例)
- Android点击事件的四种写法
- android点击事件的四种写法
- Android点击事件的四种写法
- 比较两个字符串中的字符,并交换
- c++ iterator
- **C++和JAVA中的多态区别以及与此相关的重载、覆盖和隐藏*
- 汇编中的通用数据传送类指令
- Jvm启动参数整理
- Android学习笔记(3)——按钮点击注册事件的四种写法
- JSON解析关联类型发生死循环 There is a cycle in the hierarchy!
- Node.js一些乱七八糟的知识
- Android编程之Bitmap图片压缩大小
- 【redis】dict
- C++ list
- 大数据处理系列之(一)Java线程池使用
- [OI回忆录系列之二]从中考到接触竞赛之前
- 2012ACM国际决赛试题 Fibonacci Words算法设计与分析