转载请注明出处: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); }}
新闻热点
疑难解答