教我徒弟Android开发入门(二)
2023-02-18 16:40:24 时间
前言:
上一期实现了简单的QQ登录效果,这一期继续对上一期进行扩展
本期的知识点:
Toast弹窗,三种方法实现按钮的点击事件监听
正文:
Toast弹窗其实很简单,在Android Studio中打上toast,之后按下tab键就能快捷生成一个Toast
Toast.makeText(CurrentActivity.this, "内容", Toast.LENGTH_SHORT).show();
括号中的三个参数,第一个是context(上下文,在哪里显示Toast),第二个是一个String字符串,也就是Toast显示的内容,第三个是Toast显示的时间,short是短的意思
这样就能实现弹出Toast,我将之前弹出对话框的代码修改成了下列的代码,this就是指当前的activity,这样可以省略的写
![](https://images2018.cnblogs.com/blog/1210268/201802/1210268-20180226200903430-1595543303.gif)
关于监听事件,可能我没有讲解得太清楚,拿上面的那个例子来说,我们是让当前的那个activity实现了一个监听接口,之后复写它的onClick方法,通过findviewbyid找到button的实例,调用setOnClickListener为其绑定监听器,之后,当用户点击button按钮,就会进入到onClick方法之中,由v.getid获得当前用户点击的view的id,之后进入到一个switch分支语句之中,id与R.id.button相同,就执行该分支,也就是弹出一个Toast,不只是button,其他的textview,linearlayout等等控件或者是根布局也是可以设置监听器的
我总结了五种实现时间监听器的方法,可能说法不是正确,不过,知道方法就行了,不必纠结细节
实现事件监听器的方法:
- 内部类形式
- 外部类形式
- Activity本身作为事件监听器类
- 匿名内部类形式
- 直接绑定到标签
内部类形式
将事件监听器类定义在当前类的内部
public class Test extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
MyButtonlistener listener = new MyButtonlistener();
button.setOnClickListener(listener);
}
class MyButtonlistener implements View.OnClickListener{
@Override
public void onClick(View v) {
//相关事件处理
}
}
}
外类类形式
Test类
public class Test extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
MyButtonlistener listener = new MyButtonlistener();
button.setOnClickListener(listener);
}
}
MyButtonlistener类
public class MyButtonlistener implements View.OnClickListener {
@Override
public void onClick(View v) {
//事件处理
}
}
Activity本身作为事件监听器类
将Activity本身作为事件监听器类
public class Test extends Activity implements View.OnClickListener{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//事件处理
}
}
匿名内部类形式
public class Test extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//事件处理
}
});
}
}
直接绑定到标签
在xml的布局文件中加入onClick属性,设置相关的方法
定义一个方法,记得参数是View
想深入了解的还可以看一下这一篇:Android开发之基于监听的事件处理
相关文章
- [PHP] laravel框架注意bootstrap/cache
- 《吐血整理》高级系列教程-吃透Fiddler抓包教程(35)-Fiddler如何抓取微信小程序的包-下篇
- 网站在线客服系统源码 | 全渠道在线客服代码下载 (最新版支持外贸商城/H5/小程序/公众号对接)
- 前端vue2+vue-router3+ElementUI+axios综合使用代码教程登录页案例
- 在线客服系统对接微信小程序(客服消息推送)
- 【小程序】同一微信号在微信开发工具上怎么切换小程序
- 【小程序】微信公众号模板消息跳转小程序发送失败:errcode=40013 , errmsg=invalid appid rid:
- 【小程序】微信小程序报错47001 - data format error hint
- 【小程序】微信小程序报错:用户绑定的手机需要进行验证,请在客户端完成短信验证
- 【小程序】微信小程序设置globalData全局数据
- 【小程序】获取手机号报错:getPhoneNumber:fail no permission
- 【小程序】小程序webview不支持打开非业务域名请重新配置
- 【uniapp】uniapp微信小程序开发:启动微信开发者工具提示no such file or directory错误
- 【小程序】uniapp发行微信小程序上传失败Error: Error: {"errCode":-10008,"errMsg":"invalid ip
- 【小程序】如何获取微信小程序代码上传密钥?
- [前端] 前端bootstrap col-xs-6 col-md-3的布局意思
- 解放重复劳动丨华为云IoT API Explorer对接小程序实现系统化应用
- [小程序] 支付宝小程序使用list时提示元素不存在
- [javascript] 支付宝小程序网络GET请求
- [PHP] laravel框架注意bootstrap/cache