Android按钮实现点击事件的四种方式
16lz
2021-01-24
一.匿名内部内方式
此方法整体看上去简单易懂,个人比较常用
xml布局
java代码
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 找到按钮控件Button button = (Button) findViewById(R.id.button);// 匿名内部内方式设置点击事件button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//在屏幕上显示提示 Toast 吐司Toast.makeText(MainActivity.this, "匿名内部内方式", Toast.LENGTH_SHORT).show();}});}}
在多个控件都需要实现事件监听时,可见将匿名对象抽取出来,避免多次创建对象占用资源
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 1.找到按钮控件Button button = (Button) findViewById(R.id.button);// 3.设置按钮点击事件button.setOnClickListener(onClickListener);}// 2.得到 OnClickListener 对象OnClickListener onClickListener = new OnClickListener() {@Overridepublic void onClick(View v) {// 可以使用 switch 通过匹配控件id 设置不同的按钮提示不同内容// view.getId() 得到点击的控件的idswitch (v.getId()) {case R.id.button:Toast.makeText(MainActivity.this, "可以使用设置不同内容", Toast.LENGTH_SHORT).show();break;case 2:// 省略break;default:break;}}};}
二.实现OnClickListener接口重写onClick方法
此方法适合用于多个控件实现点击事件监听
public class MainActivity extends Activity implements OnClickListener{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 1.找到按钮控件Button button = (Button) findViewById(R.id.button);// 3.按钮设置点击事件button.setOnClickListener(this);}@Overridepublic void onClick(View v) {// 2.实现OnClickListener接口,然后重写onClick方法Toast.makeText(MainActivity.this, "实现OnClickListener", Toast.LENGTH_SHORT).show();}}
此方法也可以自己创建一个类实现 OnClickListener接口
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 1.找到按钮控件Button button = (Button) findViewById(R.id.button);// 3.按钮设置点击事件button.setOnClickListener(new myOnclickLister());}// 2.自己创建类实现OnClickListener接口,然后重写onClick方法class myOnclickLister implements OnClickListener {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "实现OnClickListener", Toast.LENGTH_SHORT).show();}}}
三.XML种设置按钮的OnClick属性
然后在java代码种建立onClick属性对应名字的方法
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}//定义与XML种OnClick属性名字对应的方法 注意在方法参数种加上 View vpublic void btn(View v) {Toast.makeText(MainActivity.this, "设置Onclick属性", Toast.LENGTH_SHORT).show();}}
此方法虽然挺方便,代码简洁,但因为方面命名问题不易让他人读懂,且在多个控件种不方法使用。 更多相关文章
- android TextView控件文字下划线
- android 获取view在屏幕中的位置
- Android进行数字签名的方法
- Android唤醒屏幕按键
- android studio 解决65536的方法(64K)
- 设置Activity为全屏显示的两种方法
- 2013最新Android常用的工具类整理
- 【Android(安卓)应用开发】Activity 状态保存 OnSaveInstanceSta
- 短信发送--短信的发送流程(framework)