Android之Button点击事件处理的几种方式

Button,作为Android的控件之一,用户通过点击对其进行操作。

1.继承关系

java.lang.Object
  android.view.View
    android.widget.TextView
       ↳ android.widget.Button

2.直接子类

AppCompatButtonCompoundButton

3.间接子类

AppCompatCheckBoxAppCompatRadioButtonCheckBoxRadioButtonSwitchSwitchCompatToggleButton

4.XML属性

由于Button继承于TextView,XML属性不再解析,详情见TextView详解

5.单击事件处理

Button作为通过点击进行操作,点击后事件处理方式有几种呢?下面就对Button事件处理几种方式一一解析

5.1  Xml注册处理单击事件

在布局文件中显式指定按钮的onClick属性即android:onClick=”XX”,在Acticity中实现XX方法。

XML布局:

    

在Activity中实现:

    public void doOnclick(View view) {
        Toast.makeText(this, "Xml注册处理单击事件", Toast.LENGTH_SHORT).show();
    }

在Acitcity实现方法时,注意以下几点

1.访问修饰符必须是public 

2.返回值必须是void

3.方法名称必须和xml中andorid:onClick="XX"一致

4.必须接收一个参数 该参数一定是View类型

5.@param v  被单击的控件

5.2 Activity自身实现View.OnClickListener

将当前Activity去实现View.OnClickListener在Activity中实现其onClick()方法。这样可以使多个按钮复用一个监听器。注册监听时,只需将当前对象(this)给按钮即可

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button btn_two;


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_two = (Button) findViewById(R.id.btn_two);

        btn_two.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        Toast.makeText(this, "自身实现View.OnClickListener", Toast.LENGTH_SHORT).show();
    }


}

5.3 采用匿名内部类方式

当监听一个Button时,给Button设置监听,同时创建匿名内部类new OnclickListener()。

btn_three.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "成员内部类", Toast.LENGTH_SHORT).show();
            }
        });

5.4 成员内部类

在Activity中,自定义一个点击事件监听器的内部类类 MyOnclickListener让其实现View.OnClickListener的onClick(Viewv)方法。Button控件setOnclickListener(new MyOnClickListener())来接收一个点击事件的监听器。在每个Activity中,经常监听多个控件的单击事件,最喜欢使用这种方式,简单粗暴。

自定义内部类:

private class MyOnclicListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this, "成员内部类", Toast.LENGTH_SHORT).show();
        }
    }
Button设置监听

btn.setOnclickListener(new MyOnClickListener ());

四种监听Button单击事件处理方式,各有优劣,可以根据实际情况自行选择。


Android之Button点击事件处理的几种方式_第1张图片


日积月累,总会进步!



你可能感兴趣的:(Android基础)