Android三种方法实现按钮点击事件

    xiaoxiao2021-03-25  52

    0.我们都知道Java在开发界面的时候,需要使用监听事件,只有在写过监听事件之后才能够完整的使用软件,比如说,我们在写了一个button之后,想点击button,然后在文本标签中变换字体该怎么做呢?那么我们就需要对button这个view进行添加监听事件,添加完监听事件之后,就可以对其进行修改了。具体如下:

    1.layout.xml布局文件

     

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/start" android:layout_width="match_parent" android:layout_height="100dp" android:textSize="30sp" /> <Button android:layout_width="match_parent" android:layout_height="100dp" android:id="@+id/button_01" android:text="button_01" android:textSize="30sp" android:layout_marginTop="100dp" /> <Button android:layout_width="match_parent" android:layout_height="90dp" android:id="@+id/button_02" android:text="button_02" android:textSize="30sp" android:layout_marginTop="200dp" /> <Button android:layout_width="match_parent" android:layout_height="100dp" android:id="@+id/button_03" android:text="button_03" android:textSize="30sp" android:layout_marginTop="300dp" /> </RelativeLayout>

    这里面分别添加了三个Button,依次id为button_01,button_02,button_03。布局效果如下:

    写上id是为了方便在Java代码中找到这个对象,然后对其进行编辑。

    我们发现这里的xml文件和css代码类似,就是对其整个手机的APP布局进行设计。关键的问题是需要注意一些xml文件的格式问题,比如说,xml中只有一个根目录,其它标签都必须在这个根目录下面。这里我们使用的就是RelativeLayout根标签,这里的RelativeLayout就是相对布局的意思,在里面我们就可以使用margin,padding等来设置摆放位置,这就和css布局很类似。其实一些属性值也很类似。这里就不再多做介绍了。

    2.弄完这个布局文件之后,我们就需要对这个按钮进行代码的测试了。

    3. 就像最开始说的那个样子,我门虽然有了一个按钮,但是如果不对这个按钮进行监听操作,即使点击了这个按钮,依然无法产生效果,于是添加监听事件。

    4.添加监听事件是一个稍微麻烦的事情,但是我们需要畏难而上,我们需要实现

    View控件有一个setOnClickListener()方法,于是我们可以使用button1.setOnClickListener()方法,但是这个setOnClickListener()方法需要一个参数,该方法如下:

     

    public void setOnClickListener(View.OnClickListener l) { throw new RuntimeException("Stub!"); }

    于是我们需要在该方法中新建一个View.OnClickListener对象,只有这样,才能继续调用该方法。但是我们知道View.OnClickListener是一个接口

     

     

    public interface OnClickListener { void onClick(View var1); }

    所以我们需要使用一个类实现这个接口,然后再新建这个类对下 作为参数即可。于是便有了以下三种方法:

     

     

    //1.使用匿名内部类 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { myTextView.setText("你点击了Button_01"); } }); //2.外部类实现这个接口 button2.setOnClickListener(new OutButtonListener(myTextView)); //3.使用内部类实现按钮点击功能 class ButtonListener implements View.OnClickListener{ @Override public void onClick(View view) { myTextView.setText("你点击了Button_03!"); } } button3.setOnClickListener(new ButtonListener());

    注:

     

    1.在使用外部类实现该接口的时候,我们需要新建一个类,名为OutButtonListener,同时,我们要注意要将该类建在和当前的这个类在同一目录下,如下所示:

    外部类OutButtonListener代码如下:

     

    package com.example.myapplication; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; /** * Created by 时知夜霖 on 2017/3/12. */ //继承自View.OnClickListener public class OutButtonListener implements View.OnClickListener { private TextView mTextView; public OutButtonListener(TextView mTextView) { this.mTextView = mTextView; } public void onClick(View v){//使用View 作为参数 //按下按钮之后的事情 this.mTextView.setText("你点击了Button_02"); //((Button)v).setText("你点击了Button_02"); } }

     

     

     

     

     

    2.运行结果如图所示:

     

     

    转载请注明原文地址: https://ju.6miu.com/read-35929.html

    最新回复(0)