标签:
1 package com.imooc.outclassonclick; 2 3 import android.support.v7.app.ActionBarActivity; 4 import android.support.v7.app.ActionBar; 5 import android.support.v4.app.Fragment; 6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.util.Log; 9 import android.view.LayoutInflater; 10 import android.view.Menu; 11 import android.view.MenuItem; 12 import android.view.View; 13 import android.view.View.OnClickListener; 14 import android.view.ViewGroup; 15 import android.widget.Button; 16 import android.widget.ImageButton; 17 import android.widget.Toast; 18 import android.os.Build; 19 20 public class MainActivity extends Activity implements OnClickListener { 21 private Button bt1; 22 private Button bt2; 23 private ImageButton imgbt; 24 @Override 25 protected void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.activity_main); 28 bt1 = (Button)findViewById(R.id.button1); 29 bt2 = (Button)findViewById(R.id.button2);//强制转换成Button 30 imgbt = (ImageButton)findViewById(R.id.imageButton1); 31 /*第一种方式:匿名内部类 32 * 1、 初始化当前所需要控件,如何初始化一个控件? 33 * findViewById---但会的是一个View的对象 34 * findViewById是如何查找到对应的view的id:通过R文件找到的; 35 * 2、设置Button的监听通过监听器实现我们点击Button要操作的事情 36 * */ 37 // bt1.setOnClickListener(new OnClickListener() { 38 // 39 // @Override 40 // public void onClick(View arg0) { 41 // // TODO Auto-generated method stub 42 // 43 // } 44 // }); 45 46 /*第二种方式:外部类实现: 47 * */ 48 bt1.setOnClickListener(new MyOnClickListenr(){@Override 49 public void onClick(View arg0) { 50 // TODO Auto-generated method stub 51 super.onClick(arg0); 52 Toast.makeText(MainActivity.this, "bt1要执行的逻辑!", 1).show(); 53 } 54 }); 55 bt2.setOnClickListener(new MyOnClickListenr(){@Override 56 public void onClick(View arg0) { 57 // TODO Auto-generated method stub 58 super.onClick(arg0); 59 Toast.makeText(MainActivity.this, "bt2要执行的逻辑!", 1).show(); 60 } 61 }); 62 /*3、第三种方式:通过实现一个接口的方式实现监听事件 63 * */ 64 imgbt.setOnClickListener(this); 65 } 66 @Override 67 public void onClick(View arg0) { 68 Log.i("tag", "第三种方式实现"); 69 } 70 71 } 72 73 /*OnClickListener是一个接口,不能通过继承的方式实现 74 * */ 75 class MyOnClickListenr implements OnClickListener 76 { 77 78 @Override 79 public void onClick(View arg0) { 80 // 让所有使用当前内部类的点击事件的所有按钮都要做出一个的动作,比如改变button的透明度 81 // System.out.println("已经被点击"); 82 // Log.i("tag", "父类的onclick事件"); 83 arg0.setAlpha(0.5f); 84 } 85 86 }
标签:
原文地址:http://www.cnblogs.com/csschn/p/5063213.html