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 }