Android按钮单击事件的两种常用写法

这篇文章主要介绍了Android按钮单击事件的两种常用写法总结,有不错的参考借鉴价值,需要的朋友可以参考下

以下是我定义的一个按钮

<Button
         android:id="@+id/but"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
         android:text="Button" />

一:用匿名内部类的方法实现

MainActivity.java:

public class MainActivity extends Activity {
    private Button but;//定义变量保存按钮控件
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        but = (Button) findViewById(R.id.but);//通过id获取按钮控件
        but.setText("请点击");//修改按钮上的内容
        but.setOnClickListener(new OnClickListener() {//为按钮绑定单击事件监听器
            //匿名内部类
            public void onClick(View v) {
                //makeText方法的三个参数(上下文对象,显示的内容,显示的时长).显示
                Toast.makeText(MainActivity.this,"你好",Toast.LENGTH_LONG).show();
      }
  }); 
}

二:定义实现OnClickListener接口的类

ButOnClickListener.java:

public class ButOnClickListener implements OnClickListener{
    //实现OnClickListener接口
    private Context context;//定义context变量保存上下文对象
    //定一个构造函数,用作传递上下文对象
    public ButOnClickListener(Context context){
        this.context = context;
    }
    //实现OnClickListener接口未实现的方法
    public void onClick(View v) {
        Toast.makeText(context,"你好",Toast.LENGTH_LONG).show();   
    } 
}

MainActivity.java:

public class MainActivity extends Activity {
    private Button but;//定义变量保存按钮控件
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         but = (Button) findViewById(R.id.but);//通过id获取按钮控件
        but.setText("请点击");//修改按钮上的内容
        but.setOnClickListener(new ButOnClickListener(this));//将当前的Activity传递过去
 }

以上两个例子的运行效果

希望本文所述对大家Android程序开发有所帮助。

原文地址:https://www.cnblogs.com/zhaoyucong/p/6073763.html