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

    xiaoxiao2024-05-07  9

    一.Button 四种点击事件分为

    二.任务要求

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

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

    1.匿名内部类方式

    先写好布局

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" //使用垂直布局  > <Button android:id="@+id/bt_click" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="十八禁" /> <ImageView android:id="@+id/iv_pic" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/android" /> </LinearLayout>

    预览如下图所示:

    然后编写相关的程序,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); } }

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

    转载请注明原文地址: https://ju.6miu.com/read-1288334.html
    最新回复(0)