12下一页
返回列表 发新帖

【Android入坑系列教程】7.简单的单击事件---你好安卓

[复制链接]

62

主题

722

回帖

2756

积分

大学生

Rank: 5Rank: 5

金币
2029
好评
12
信誉
100

考神

发表于 2019-3-10 15:58:13 | 显示全部楼层 | 阅读模式  来自 四川
本帖最后由 pansong291 于 2019-3-28 13:27 编辑

上篇:6.获取组件及设置属性---你好安卓
下篇:8.初识Intent(一)---你好安卓

注意:如果你的回复只是“感谢分享”、“辛苦了”之类的与教程内容无关的字眼,还请不要回复本帖,谢谢合作!!!
注意:如果你的回复只是“感谢分享”、“辛苦了”之类的与教程内容无关的字眼,还请不要回复本帖,谢谢合作!!!
注意:如果你的回复只是“感谢分享”、“辛苦了”之类的与教程内容无关的字眼,还请不要回复本帖,谢谢合作!!!


程序没有交互性是很乏味的,你平时使用Android软件,用点击、长按、滑动来操作软件,这些就是与程序进行"交互",很显然,我们之前写的安卓程序都没有交互性,你肯定觉得这样的程序没什么意思。。。本来是想讲下Android事件处理的,可是里面涉及到了java语言里的"方法"、"接口"等等不是一两句话的解释的清楚,我们这里只讲一个简单的单击事件的例子是怎么写的。(短时间够用了)

在手机的使用过程中,经常要使用按钮触发一些基本的操作,这时就可以通过单击事件完成。单击使用View.OnClickListener接口进行事件处理,此接口定义如下:

如果要想设置此事件操作接口,则直接使用setOnClickListener()方法即可,当事件触发之后,使用onClick()方法执行具体的处理操作。
上面的话可能没有java基础的人看不明白,没关系,我们现在只需要掌握怎么操作的就行了,页面如下:

布局文件如下:


在这布局里,"1+1=?"是由两个TextView组成的,一个显示的是“1+1=”,另一个显示的是“?”,注意这里的问号如果是英文问号,需要在前面添加一个英文反斜杠,不然会报错,如果你用的是中文的问号,就不用添加,我用的英文符号的问号,所以加了个反斜杠,在UI设计器里显示的是“\?”,但是实际运行出来的效果就只是“?”,没有前面的反斜杠,说明UI设计器预览的效果与实际运行效果存在差异,我们要以实际运行效果为准。我们现在要做的就写一个单击事件,当我们点击确定的时候,把文本框输入的值设置到那个显示“?”的TextView里,比如,我在文本框里输入2,点击确定,上面的显示就会变成“1+1=2”~
看下图的代码怎么写的:

代码写好后,AIDE会提示我们OnClickListener和View这两处有错误,同样是因为未导包的问题,长按错误代码,修复即可。
怎么获取和设置组件的值我就不说了上图已经给出代码了。这里的代码和上一讲有小小不同,我们把定义组件的代码,例如:
private TextView showView = null;
这句写在了中括号外面,为的是让下面事件监听能够调用到我们onCreate方法里获取到的组件。。。(看不懂略过,以后学了java才会明白),在这句代码里,private是私有的意思,TextView是我们要定义的属性类型,showView是我们自己定义的名字,"=null"照搬就是。

然后我们在onCreate(){}外面定义一个事件监听:
private class ShowListener implements OnClickListener
{
    public void onClick(View v)
    {
    }
}
这里定义的是一个处理事件的内部类。ShowListener是我们自己给这个类定义的名字。我们的程序在触发点击事件后要干什么的代码就写在这里面。
如上图的,事件处理里有两行代码:
//获取文本框输入的内容
String sum = edit.getText().toString();
//把文本框获取到的值设置到文本显示组件
showView.setText(sum);
监听事件写好了,但这个事件是哪个组件的事件我们还没定义,所以,我们还要在onCreate(){}里写一句代码把"确定"按钮和这个事件绑定。代码:
btn.setOnClickListener(new ShowListener());
ShowListener是我们定义的监听事件的那个内部类的名字。
运行一下:

这样的,我们的一个单击事件就完成了。单击事件还有一种使用匿名内部类的写法:
btn.setOnClickListener(new OnClickListener()
{
    public void onClick(View v)
    {
        //代码写这里
    }
});
这种写法简便一点不用跑到onCreate(){}外面定义一个事件监听~

课后练习:
我们不是还有一个"重置"按钮吗?把这个功能写出来。当点击"重置"按钮时,把输入框里的内容清空~
(提示:把输入框内容设置成空的就OK,就是一对引号,引号里面什么都不写)

上篇:6.获取组件及设置属性---你好安卓
下篇:8.初识Intent(一)---你好安卓

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有1人评分好评 理由
zjw68688 + 1 赞一个!

查看全部评分 总评分:好评 +1 

回复

使用道具 举报

4

主题

146

回帖

507

积分

初中生

Rank: 3Rank: 3

金币
172
好评
2
信誉
100
发表于 2019-3-10 16:05:33 来自手机  | 显示全部楼层  来自 四川
谢谢,非常喜欢这样的教程
回复

使用道具 举报

13

主题

2988

回帖

6463

积分

硕士生

Rank: 6Rank: 6

金币
496
好评
7
信誉
100

考神

发表于 2019-3-10 16:05:35 来自手机  | 显示全部楼层  来自 广西
感谢分享
回复

使用道具 举报

1

主题

2283

回帖

4494

积分

大学生

Rank: 5Rank: 5

金币
2610
好评
1
信誉
100
发表于 2019-3-10 20:28:36 | 显示全部楼层  来自 河北
感谢感谢,学习啦,从头开始学习
回复

使用道具 举报

483

主题

2万

回帖

6万

积分

版主

喵喵,喵~

Rank: 7Rank: 7Rank: 7

金币
44808
好评
304
信誉
126

MT论坛灌水老大MT论坛最佳新人2019-5.1节快乐考神MT论坛侠客MT论坛活跃会员MT论坛新人挂机大佬

发表于 2019-3-10 23:15:42 来自手机  | 显示全部楼层  来自 山东
点击事件感觉还行
回复

使用道具 举报

1

主题

67

回帖

408

积分

初中生

Rank: 3Rank: 3

金币
83
好评
0
信誉
100
QQ
发表于 2019-8-2 04:27:26 来自手机  | 显示全部楼层  来自 北京
萌新表示不是很懂,但是很想学,不知道从何开始。
回复

使用道具 举报

0

主题

8

回帖

67

积分

小学生

Rank: 2

金币
24
好评
0
信誉
100
发表于 2020-2-24 16:08:30 | 显示全部楼层  来自 山东
回复

使用道具 举报

0

主题

19

回帖

85

积分

小学生

Rank: 2

金币
34
好评
0
信誉
100
发表于 2020-2-28 21:52:23 | 显示全部楼层  来自 河南
说实话,我刚来论坛没几天,看到一堆堆的代码有点蒙圈;
      但是我已经制定了学习目标和学习计划,就要努力坚持;
大神针对我这样的小白能提供一点指导性建议吗,主要是从哪方面入手会更好?
回复

使用道具 举报

62

主题

722

回帖

2756

积分

大学生

Rank: 5Rank: 5

金币
2029
好评
12
信誉
100

考神

发表于 2020-3-3 13:17:04 来自手机  | 显示全部楼层  来自 四川
zjw68688 发表于 2020-2-28 21:52
说实话,我刚来论坛没几天,看到一堆堆的代码有点蒙圈;
      但是我已经制定了学习目标和学习计划,就要 ...

先跟着教程走,看不懂代码没关系,先提兴趣,然后再学基础
回复

使用道具 举报

428

主题

6608

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
5324
好评
44
信誉
185

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人MT论坛灌水老大MT论坛新人

发表于 2020-3-3 23:28:40 来自手机  | 显示全部楼层  来自 上海
厉害了我的哥
回复

使用道具 举报

12

主题

102

回帖

924

积分

高中生

Rank: 4

金币
135
好评
1
信誉
101

MT论坛帅哥考神

发表于 2020-3-10 17:55:48 来自手机  | 显示全部楼层  来自 山东–济南–
你们有谁闪退,咋解决
回复

使用道具 举报

21

主题

274

回帖

1276

积分

高中生

Rank: 4

金币
326
好评
1
信誉
100

MT论坛帅哥考神MT论坛最佳新人

QQ
发表于 2020-3-13 09:37:05 来自手机  | 显示全部楼层  来自 广东
这个aide里面是不是没得教的?我才在aide学到int变量
回复

使用道具 举报

21

主题

274

回帖

1276

积分

高中生

Rank: 4

金币
326
好评
1
信誉
100

MT论坛帅哥考神MT论坛最佳新人

QQ
发表于 2020-3-13 09:41:11 来自手机  | 显示全部楼层  来自 广东
iosds 发表于 2019-8-2 04:27
萌新表示不是很懂,但是很想学,不知道从何开始。

aide里面有基础教学的,下个汉化版的
回复

使用道具 举报

1

主题

190

回帖

526

积分

初中生

Rank: 3Rank: 3

金币
3
好评
0
信誉
101
发表于 2020-3-13 10:04:44 来自手机  | 显示全部楼层  来自 湖南
沙发         
回复

使用道具 举报

22

主题

3021

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
8872
好评
1
信誉
100
发表于 2020-3-13 14:07:09 | 显示全部楼层  来自 河南
大多数都需要点击实现吧
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表