Android中使用4种方式实现按钮点击操作
16lz
2021-01-24
在Android开发中,对控件的操作是最基本的技术,尤其是对按钮的点击操作。我以下总结了4种按钮点击的实现方式。与大家分享,希望大家批评指正。
(1)匿名内部类实现
这种方式是最简单的实现,一般刚开始学习Android或者学习基于用户界面的开发,该方法是必学的。实现代码如下:
public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.id_btn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "按钮被点击了", Toast.LENGTH_LONG).show(); } }); }}
(2)Activity实现OnClickListener接口
使用该种方法,就是在当前Activity中implements View.OnClickListener.然后实现接口中未实现的方法。具体对按钮的操作或者业务逻辑在onClick()中实现,实现代码如下:
public class MainActivity extends Activity implements View.OnClickListener { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.id_btn); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.id_btn: Toast.makeText(MainActivity.this, "按钮被点击了", Toast.LENGTH_LONG).show(); break; default: break; } }}
(3)内部类实现OnClickListener接口
该方法就是在当前Activity主类中新建一个内部类,该内部类实现OnClickListener。思路同方法二。实现代码如下:
public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.id_btn); MyClick myClick = new MyClick(); button.setOnClickListener(myClick); } class MyClick implements View.OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.id_btn: Toast.makeText(MainActivity.this, "按钮被点击了", Toast.LENGTH_LONG).show(); break; } } }}
(4)注解方式:参考我的另一篇博客(使用ButterKnife注解框架实现View的点击操作):http://blog.csdn.net/chenyufeng1991/article/details/46901101
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
更多相关文章
- JavaDoc不显示 &Android中HttpGet和HttpPost &JSONObject
- Android(安卓)Fragment的使用
- Android(安卓)绘图基础:Canvas,Paint,RectF,Paint类
- Android(安卓)ndk入门准备--hello jni
- Android笔记---常用控件以及用法
- Adroid 使用AIDL和远程服务实现进程通信
- Android(安卓)源码详解:View的事件分发机制
- Android用户界面开发(10):Button
- Android-动画实现原理