按钮的点击事件---监听实现
- button和imagebutton都拥有一个onClick事件,通过自身的.setOnClickListener(OnClickListener)方法添加点击事件
- 所有的控件都有一个onclick的事件,不仅仅button和ImageButton拥有;
- 通过点击事件的监听可以实现点击按钮之后要发生什么动作;
- 监听事件实现的几种写法:
- 匿名内部类实现
- 外部独立类实现
- 使用接口的实现
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 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步