须知少年凌云志,曾许人间第一流。这篇文章主要讲述教我徒弟Android开发入门相关的知识,希望能为你提供帮助。
前言:
上一期实现了简单的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,这样可以省略的写
文章图片
文章图片
关于监听事件,可能我没有讲解得太清楚,拿上面的那个例子来说,我们是让当前的那个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开发之基于监听的事件处理
【教我徒弟Android开发入门】
推荐阅读
- RobotFramework(App九宫格滑动解锁)
- 大三小学期 Android开发的一些经验
- Android Studio 第五十六期 - Android之系统设置选项的包名
- 65.dynamic mapping
- Appium自动化测试学习笔记 —— Appium原理
- call()与apply()用法
- Android学习之AutoCompleteTextView和MultiAutoCompleteTextView
- AndroidStudio Frameworks detected: Android framework is detected in the project Configure
- webpack4:compilation.mainTemplate.applyPluginsWaterfall is not a function 解决方法