csschn

按钮的点击事件---监听实现

  1. buttonimagebutton都拥有一个onClick事件,通过自身的.setOnClickListener(OnClickListener)方法添加点击事件
  2. 所有的控件都有一个onclick的事件,不仅仅buttonImageButton拥有;
  3. 通过点击事件的监听可以实现点击按钮之后要发生什么动作;
  4. 监听事件实现的几种写法:
  • 匿名内部类实现
  • 外部独立类实现
  • 使用接口的实现
     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 }
    Listener

     

 

分类:

技术点:

相关文章: