Android中Button的五种监听事件
2024-09-30 06:19:45
简单聊一下Android中Button的五种监听事件:
1.在布局文件中为button添加onClick属性,Activity实现其方法
2.匿名内部类作为事件监听器类
3.内部类作为监听器
4.Activity本身作为事件监听器,实现onClickListener
5.外部类作为监听器
ButtonListenerActivity.class
public class ButtonListenerActivity extends AppCompatActivity implements View.OnClickListener{ private Button bt_one,bt_two,bt_three,bt_four,bt_five;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button_listener); bt_two = (Button) findViewById(R.id.bt_listener_two);
bt_three = (Button) findViewById(R.id.bt_listener_three);
bt_four = (Button) findViewById(R.id.bt_listener_four);
bt_five = (Button) findViewById(R.id.bt_listener_five); //方式二:匿名内部类作为事件监听器类
bt_two.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ButtonListenerActivity.this,"方式二:匿名内部类",Toast.LENGTH_LONG).show();
}
}); //方式三:内部类作为事件监听器类
MyButton listener = new MyButton(this);
bt_three.setOnClickListener(listener); //方式四:Activity本身作为事件监听器,实现onClickListener
bt_four.setOnClickListener(this); //方式五:外部类作为事件监听器类
bt_five.setOnClickListener(new MyButtonListener(this));
} //1.方式一:在布局文件中为button添加onClick属性,Activity实现其方法
public void buttonClick(View view){
Toast.makeText(ButtonListenerActivity.this,"方式一:onClick",Toast.LENGTH_LONG).show();
} //方式四:Activity本身作为事件监听器,实现onClickListener--重写onClick()
@Override
public void onClick(View v) {
Toast.makeText(ButtonListenerActivity.this,"方式四:Activity本身作为事件监听器",Toast.LENGTH_LONG).show();
} //方式三:内部类作为事件监听器类
class MyButton implements View.OnClickListener{
private Context context;
public MyButton(Context context){
this.context = context;
}
@Override
public void onClick(View v) {
Toast.makeText(context,"方式三:内部类",Toast.LENGTH_LONG).show();
}
} }
activity_button_listener.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.langdon.taiyang.androidtest.button.ButtonListenerActivity"> <Button
android:id="@+id/bt_listener_one"
android:text="方式一:onClick绑定"
android:onClick="buttonClick"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/bt_listener_two"
android:text="方式二:匿名内部类"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/bt_listener_three"
android:text="方式三:内部类监听"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/bt_listener_four"
android:text="方式四:Activity本身实现监听事件"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/bt_listener_five"
android:text="方式五:外部类作为监听"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
MyButtonListener.class
public class MyButtonListener implements View.OnClickListener {
private Context context;
public MyButtonListener(Context context){
this.context = context;
}
@Override
public void onClick(View v) {
Toast.makeText(context,"方式五:外部类",Toast.LENGTH_LONG).show();
}
}
最新文章
- 关于window.open()中文传值乱码问题的解决方法
- 实现JavaScript自定义函数的整合、链式调用及类的封装
- Windows 10 下ASP.NET4.0尚未在Web服务器上注册
- 20151221001 GridView 模板
- latex 小结
- [STL]双层级配置器
- Oracle Text Slowly
- MYSQL :逗号分隔串表,分解成竖表
- 【UNIX网络编程(一)】套接字地址结构、网络字节顺序和地址转换功能
- Activity栈与任务管理探究1——栈与任务的概述
- 初步探究Android App API接口测试--实战
- easyUI datagrid 多行多列数据渲染异常缓慢原因以及解决方法
- 【Unity与23种设计模式】代理模式(Proxy)
- pdf 下载demo
- Fiddler抓包【2】_捕获设置
- Java判断不为空的工具类总结
- Java 8 forEach简单例子(转载)
- Window上,启动Tomcat服务之后,关闭启动窗口,服务器也随之关闭
- MySQL常见错误代码及代码说明
- easyui datagrid设置fit: true后,页面显示不全的情况