Android自动生成创建者,在Android Studio中如何自动创建onClick方法

1c98543ea62af9c8d7ff726e8567c4c8.png

1c98543ea62af9c8d7ff726e8567c4c8.png

1c98543ea62af9c8d7ff726e8567c4c8.png

1c98543ea62af9c8d7ff726e8567c4c8.png

09673691b0ee49730dd8927ef8a0d8b3.png 1

3fc03d0f2b4a220de4f5758da97fee10.png9968128792e869af631e1b376d44a583.png 2-3

对于初学者而言,按钮等的onClick方法似乎有点“麻烦”,每次都手工敲出来会不胜其烦,降低学习的效率和兴趣的。实际上,Android Studio提供了非常人性化的快捷键帮助自动编写onClick方法,跟我来…这里以按钮为例说明如何方便的添加onClick方法,根据情况可以采用两种不同的方法。

1 使用匿名类

如果页面上的按钮不多,比如只有一个时,使用匿名类实现事件对象很方便,代码量也是最小的。其步骤是:

查询并获取按钮对象,这一步没什么稀奇的了:

Button button = (Button)findViewById(R.id.send_notice);

1

Buttonbutton=(Button)findViewById(R.id.send_notice);

接着敲入button.,注意在“.”处稍作停顿,Android Studio即可弹出一个自动补全代码的提示列表,其中第一项往往就是我们需要的代码(Android Studio很智能的),如1所示。

bf8664455617384d701ff79bbd34db4f.png

图 1: 自动补全代码的提示列表

选择希望的自动补全代码后,直接按回车键即可,如2所示,可见Android Studio自动添加了setOnClickListener方法,并且提示(参见setOnClickListener方法参数列表上方的气泡)setOnclickListener方法的参数应该是一个OnClickListener对象。

86c536564d353d064ef35274f3084d96.png

图 2: 自动补全部分代码后的样子

很显然,经过了第3步后,我们已经知道setOnclickListener方法的参数应该是一个OnClickListener对象,可是如何创建这个对象呢?显然要使用new操作符了,因此只要在setOnclickListener方法中输入new␣(注意一定要输入一个空格键),然后按下快捷键,Android Studio有足够的智能知道你在这里要创建什么类型的对象,如3所示。

19a9785eccb14742050f7d9e21a959d9.png

图 3: 自动补全OnClickListener对象

在第4步中,Android Studio自动猜到了我们要创建的对象类型为View.OnClickListener,因此只要在补全列表中选择第一个(默认已经选中了)按下回车键确认即可,结果如4所示。

87469c3b6adb31895be891bd08d1b625.png

图 4: 自动补全OnClickListener对象之后

最后一步!在第5步中可以看到,自动补全的OnClickListener对象下面画着红色的波浪线,表示这段代码有问题。将鼠标移动到红色波浪线标出的代码上,按下快捷键,Android Studio给出了如5所示的提示,选择Implement methods(默认已选中)按下回车键确认,在接下来如6所示的窗口中选择onClick方法(默认已自动选中),即可自动创建所需要的onClick方法,如下所示:

Button button = (Button)findViewById(R.id.send_notice);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

}

});

1

2

3

4

5

6

7

Buttonbutton=(Button)findViewById(R.id.send_notice);

button.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

}

});

b2f541cc16991f1e97837dbfa31f799a.png

图 5: 自动补全onClick方法的补全列表

c63269b1f1e19dc82a6813032bc7cb80.png

图 6: 自动补全onClick方法的选择窗口

看起来自动生成onClick方法好麻烦啊!但是其实只需要输入为数不多的几个字母,再记住两个快捷键,就非常便捷了。实际上,对于本例,输入的键盘序列为:。多练习几次,就能够很熟练的掌握这个方法的。

如果足够熟练,你会发现另外一个更快的输入方法,键盘序列为:,读者可自行尝试,并思考:为什么要输入字母O?

1

解释:在上面第3步我们已经看到,Android Studio自动提示setOnclickListener方法需要一个OnClickListener对象,因此在这里输入字母O,Android Studio能够智能的判断我们希望创建一个以字母O开头的对象,在这里即View.OnClickListener。

2 实现接口

如果页面中包含多个按钮,使用1中介绍的匿名类方法就显得比较啰嗦,此时可以让当前的Activity类实现OnClickListener接口,在一个onClick方法中处理多个按钮的点击事件。下面介绍快速生成代码框架的方法。

首先获取button对象,假设这里有两个按钮,分别是button1和button2:

Button button1 = (Button)findViewById(R.id.button1);

Button button2 = (Button)findViewById(R.id.button2);

1

2

Buttonbutton1=(Button)findViewById(R.id.button1);

Buttonbutton2=(Button)findViewById(R.id.button2);

添加两个按钮的事件响应代码,参考1中的第2步,生成的代码为:

button1.setOnClickListener(this);

button2.setOnClickListener(this);

1

2

button1.setOnClickListener(this);

button2.setOnClickListener(this);

注意到,在第2步中,我们将this作为setOnClickListener方法的参数,而我们知道,setOnClickListener的参数应该是一个View.OnClickListener类型的对象,因此就需要在this中实现View.OnClickListener接口的方法,这样this就可以“向上收窄”为一个View.OnClickListener类型的对象。快捷的操作方式是,将光标移动到this上面,按下,如7所示选择MainActivity实现View.OnClickListener接口,然后在接下来的窗口中选择实现onClick方法,如8。

08ab05f1b27902a0da54749c620e5286.png

图 7: 准备自动创建onClick方法

c79abcb9204b168f1461dc8350ec1788.png

图 8: 选择onClick方法的窗口

如此操作后你会发现,Android Studio自动声明MainActivity实现了View.OnClickListener接口,并自动给出了一个onClick方法的框架,很方便。在自动生成的onClick方法中再区分不同的按钮就行事件处理就可以了,大致的代码逻辑如下所示:

@Override

public void onClick(View v) {

switch(v.getId()){

case R.id.button1:

// button1 logic

break;

case R.id.button2:

// button2 logic

break;

default:

}

}

1

2

3

4

5

6

7

8

9

10

11

12

@Override

publicvoidonClick(Viewv){

switch(v.getId()){

caseR.id.button1:

// button1 logic

break;

caseR.id.button2:

// button2 logic

break;

default:

}

}

d4c39bd54dfbfe627dbd9fe226767b2c.png

0

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值