三种方式实现控件监听

来源:互联网 发布:作弊大师软件下载 编辑:程序博客网 时间:2024/06/06 18:43

转载请注明出处http://blog.csdn.net/mr_leixiansheng/article/details/58597469

1、匿名内部类监听

2、外部类监听

3、接口实现监听

代码如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <Button        android:id="@+id/button"        android:text="常规按钮"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <ImageButton        android:id="@+id/image_button"        android:src="@mipmap/ic_launcher"        android:layout_width="match_parent"        android:layout_height="wrap_content" /></LinearLayout>

package com.example.leixiansheng.buttonimagebutton;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.Toast;/** * Created by Leixiansheng on 2017/2/28. *//** * 1、明白Button和ImageButton的用法和区别 * 2、3种监听方式(内部监听、外部监听、接口监听) */public class MainActivity extends AppCompatActivity {    private Button button;    private ImageButton imageButton;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main_activity);        button = (Button) findViewById(R.id.button);        imageButton = (ImageButton) findViewById(R.id.image_button);        //1、内部类监听(直接new View.OnClickListener使用)//        button.setOnClickListener(new View.OnClickListener() {//            @Override//            public void onClick(View view) {//                Toast.makeText(MainActivity.this, "点击了按钮",Toast.LENGTH_SHORT).show();//            }//        });//        imageButton.setOnClickListener(new View.OnClickListener() {//            @Override//            public void onClick(View view) {//                Toast.makeText(MainActivity.this, "点击了按钮",Toast.LENGTH_SHORT).show();//            }//        });        //2、外部类监听(1、外面先写一个类并继承监听 2、调用这个外部类实现监听)        // 作用:解决代码复用,比如每个按键都需要实现点击后变透明,只需一个外部类即可        MyListener listener = new MyListener();        button.setOnClickListener(listener);        imageButton.setOnClickListener(new MyListener(){            @Override            public void onClick(View view) {                super.onClick(view);                Toast.makeText(view.getContext(), "点击了特殊按钮",Toast.LENGTH_SHORT).show();            }        });        //3、接口监听(实现View.OnClickListener)//        button.setOnClickListener(this);//        imageButton.setOnClickListener(this);    }//      接口实现监听//    @Override//    public void onClick(View view) {//        switch (view.getId()) {//            case R.id.button:////                break;//              case R.id.image_button:////                break;////        }//    }}//外部类实现监听class MyListener implements View.OnClickListener {    @Override    public void onClick(View view) {        view.setAlpha(0.5f);    }}


0 0
原创粉丝点击