android Button实现点击事件的三种方法
16lz
2021-01-26
一、使用匿名内部类实现 onClickListener接口,通用;
二、让MainActivity实现onClickListener接口,这种方法适合于有多个组件时,这样用会更加的方便;
三、在XML文件中的相应组件中定义onClick方法,自定义的方法;
实现的源码:
package com.example.clickbutton;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;//此处为了用第二种方法所以在开始的Activity中实现了Onclicklistener接口;public class MainActivity extends Activity implements OnClickListener{private Button button,button2,button3,button4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button=(Button)findViewById(R.id.button1);button2=(Button)findViewById(R.id.button2);button3=(Button)findViewById(R.id.button3);button4=(Button)findViewById(R.id.button4);button2.setOnClickListener(this);//第二种方式的buttonbutton3.setOnClickListener(this);//第二种方式的button//第一种:使用匿名内部类:button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(MainActivity.this , "这是第一个button", 1).show();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}//第二种:让MainActivity implements OnClickListener 接口,这样就可以如下写了:public void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.button2:Toast.makeText(MainActivity.this , "这是第二个button", 1).show();break;case R.id.button3:Toast.makeText(MainActivity.this , "这是第三个button", 1).show();break;default:break;}}// 第三种是用xml定义(绑定)一个onClickListener事件public void showMessage(View v){Toast.makeText(MainActivity.this, "第三种方法实现事件绑定的button", 1).show();}}
第三种在XML中的组件代码:
<Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/button3" android:text="@string/button4" android:onClick="showMessage"/>
更多相关文章
- Android(安卓)-List和ArrayList(),发现你的真身
- Android(安卓)Framework系列之IMF(二)
- android ksoap2 访问webservice,连续两次调用时,第二次调用异常
- React Native---手势响应系统
- SQLite与ContentProvider)
- Android(安卓)design support library---CollapsingAvatarToolba
- Android实战技巧:常用开发FAQ(续)
- Intent和Intent-Filter详解
- 【Android】使用Gallery组件实现循环显示图像