Android如何添加控件监听器(三种方式)
目录
- 本文概述:
- 方式一:在布局中添加onClick属性
- 方式二:采用匿名内部类
- 方式三:MainActivity 实现 View.OnClickListener 接口
本文概述:
- 本文介绍了,在Android中为控件添加监听的三种常见方式
- 设置控件的onClick属性
- 采用匿名内部类
- MainActivity 实现 View.OnClickListener 接口
方式一:在布局中添加onClick属性
- 编写思路:
- 在布局文件中:
- 指定控件 id
- 指定控件onClick属性
- 在MainActivity中:
- 在onCreate中拿到控件实例
- 在onCreate之外,创建监听方法(方法名与前面设置的onClick属性相同)
- 在布局文件中:
- 布局代码:指定控件的onClick属性(已经被废弃掉了)
- 【Android如何添加控件监听器(三种方式)】Activity代码:
public class MainActivity extends AppCompatActivity {?private Button button; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //获取控件示例button = findViewById(R.id.button); }?public void buttonClick(View view) {setToast("点击了button按钮"); }?public void setToast(String string){Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); }}
- 运行结果:可不可以限定Toast的提示位置?比如说将Toast放在中间去
文章图片
方式二:采用匿名内部类
- 编写思路:
- 在布局文件中:指定控件 id
- 在MainActivity中
- 在onCreate内:
- 获取控件实例
- 为控件添加监听(使用匿名内部类重写onClick方法)
- 在onCreate内:
- 在布局文件中:指定控件 id
- 布局代码:此时不能设置onClick属性
- Java 代码
public class MainActivity extends AppCompatActivity {?private Button button; ?@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); ?//获取控件示例button = findViewById(R.id.button); ?//添加监听button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {setToast("点击了按钮"); }}); }?public void setToast(String string){Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); }}
- 运行结果:
文章图片
方式三:MainActivity 实现 View.OnClickListener 接口
- 编写思路:
- 在布局文件中:
- 指定控件 id
- 在MainActivity声明处:实现 View.OnClickListener 接口
- 在MainActivity中:
- 在onCreate方法内:
- 拿到控件实例
- 为控件注册监听器
- 在onCreate方法外:重写onClick方法
- 在onCreate方法内:
- 在布局文件中:
- 布局代码:
- MainActivity 代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {?private Button button; ?@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); ?//获取控件示例button = findViewById(R.id.button); //为控件注册监听器button.setOnClickListener(this); }?public void setToast(String string){Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); }?@Overridepublic void onClick(View view) {setToast("按钮被点击了"); }}
- 运行效果:
文章图片
推荐阅读
- QT中大部分部件如何使用举例详解
- Android 系统的分区
- Android|AndroidStudio003--Button组件的使用,监听及事件处理
- c#devexpress GridContorl添加进度条
- DevExpress GridControl中添加进度条控件
- Linux|初识 - Linux
- Android中View的工作流程之measure过程
- Android|Android Studio连接自带模拟器失败怎么办(强烈建议使用第三方模拟器(含各类模拟器下载地址))
- Python爬虫从基础到实战|如何优雅的统计Python代码耗时(Python统计代码耗时的几种方法)
- Hexo博客|Hexo博客添加站内搜索功能