Android学习笔记——Button 四种点击事件

一.Button 四种点击事件分为

Android学习笔记——Button 四种点击事件_第1张图片


二.任务要求

我们要通过这些点击事件,要做一个小程序,要做到的效果:当我们电机“十八禁”这个按钮的时候,可以弹出一个图片(绿色部分)



三.详细的四种点击事件分析


1.匿名内部类方式

先写好布局




    


预览如下图所示:



  • 然后编写相关的程序,MainActivity.java,设置监控,触发时候把图片显示出来

public class MainActivity extends AppCompatActivity  {

    private ImageView iv_pic;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置关联的布局
        setContentView(R.layout.activity_main);
        //多态
        Button bt_click=(Button)findViewById(R.id.bt_click);
        //如果xml里放了个按钮什么的,在activity中要获取该按钮就用
        //findViewById(R.id.xml文件中对应的id)
        //实例化控件——找控件
        iv_pic=(ImageView)findViewById(R.id.iv_pic);
       
        //对按钮注册一个监听器
       //第一种点击事件方式—— 匿名内部类方式
        bt_click.setOnClickListener(new View.OnClickListener() {
            //当点击按钮——并手指抬起时候,触发该方法
            @Override
            public void onClick(View v) {
                //设置ImageView的图片资源,触发方法时候显示这个图片
                iv_pic.setImageResource(R.drawable.b);
            }
        });
}
效果图:(点击按键之后)



2. 通过内部类实现方式

  • 改写MainActivity.java,通过写一个内部类,该内部类继承OnClickListener,然后将这个内部类作为参数传入setOnClickListener()函数中
    public class MainActivity extends AppCompatActivity  {
    
        private ImageView iv_pic;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button bt_click=(Button)findViewById(R.id.bt_click);
            iv_pic=(ImageView)findViewById(R.id.iv_pic);
        class MyClickListener implements View.OnClickListener {
                @Override
                public void onClick(View v){
                    iv_pic.setImageResource(R.drawable.b);
                }
            }
    //      第二种点击事件方式————内部类方式
         bt_click.setOnClickListener(new MyClickListener());
    }

3.类实现 OnClickListener接口方式

自身函数实现OnClickListener接口,这里用switch函数,也可以不用,直接在onClick(),方法里面写 iv_pic.setImageResource(R.drawable.b),用switch的好处就是,如果有很多按键就可以用这种方式,可以减少很多代码。

public class MainActivity extends AppCompatActivity implenments View.OnClickListener{

    private ImageView iv_pic;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt_click=(Button)findViewById(R.id.bt_click);
        iv_pic=(ImageView)findViewById(R.id.iv_pic);
     }
   @Override
   public void onClick(View v){
 //获取设置点击事件,并取得点击控件的id 
   switch (v.getId()){ 
      case R.id.bt_click: 
          iv_pic.setImageResource(R.drawable.b);
          break; 
      default: 
          break; } }
   bt_click.setOnClickListener(this);
 } 


 
  

4.Xml中配置onClick

在Button的控件中添加,android:onClick="showPic",showPic不是固定的,所起的名字就作为一个点击事件存在。之后再改MainActivity.java。写一个方法,参数要是View,这个方法作用是显示出图片

public class MainActivity extends AppCompatActivity  {

    private ImageView iv_pic;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt_click=(Button)findViewById(R.id.bt_click);
        iv_pic=(ImageView)findViewById(R.id.iv_pic);
    }        
    public void showPic(View v){
        iv_pic.setImageResource(R.drawable.b);
    }
}


本人刚入门安卓,有什么不对的地方,希望大神们指出!







你可能感兴趣的:(Android学习笔记——Button 四种点击事件)