zoukankan      html  css  js  c++  java
  • Android中Button的五种监听事件

      简单聊一下Android中Button的五种监听事件:

    1.在布局文件中为button添加onClick属性,Activity实现其方法
    2.匿名内部类作为事件监听器类
    3.内部类作为监听器
    4.Activity本身作为事件监听器,实现onClickListener
    5.外部类作为监听器

    ButtonListenerActivity.class
    public class ButtonListenerActivity extends AppCompatActivity implements View.OnClickListener{
    
        private Button bt_one,bt_two,bt_three,bt_four,bt_five;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_button_listener);
    
            bt_two = (Button) findViewById(R.id.bt_listener_two);
            bt_three = (Button) findViewById(R.id.bt_listener_three);
            bt_four = (Button) findViewById(R.id.bt_listener_four);
            bt_five = (Button) findViewById(R.id.bt_listener_five);
    
            //方式二:匿名内部类作为事件监听器类
            bt_two.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(ButtonListenerActivity.this,"方式二:匿名内部类",Toast.LENGTH_LONG).show();
                }
            });
    
            //方式三:内部类作为事件监听器类
            MyButton listener = new MyButton(this);
            bt_three.setOnClickListener(listener);
    
            //方式四:Activity本身作为事件监听器,实现onClickListener
            bt_four.setOnClickListener(this);
    
            //方式五:外部类作为事件监听器类
            bt_five.setOnClickListener(new MyButtonListener(this));
        }
    
        //1.方式一:在布局文件中为button添加onClick属性,Activity实现其方法
        public void buttonClick(View view){
            Toast.makeText(ButtonListenerActivity.this,"方式一:onClick",Toast.LENGTH_LONG).show();
        }
    
        //方式四:Activity本身作为事件监听器,实现onClickListener--重写onClick()
        @Override
        public void onClick(View v) {
            Toast.makeText(ButtonListenerActivity.this,"方式四:Activity本身作为事件监听器",Toast.LENGTH_LONG).show();
        }
    
        //方式三:内部类作为事件监听器类
        class MyButton implements View.OnClickListener{
            private Context context;
            public MyButton(Context context){
                this.context = context;
            }
            @Override
            public void onClick(View v) {
                Toast.makeText(context,"方式三:内部类",Toast.LENGTH_LONG).show();
            }
        }
    
    
    }
    

      

    activity_button_listener.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.langdon.taiyang.androidtest.button.ButtonListenerActivity">
    
    <Button
        android:id="@+id/bt_listener_one"
        android:text="方式一:onClick绑定"
        android:onClick="buttonClick"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
        <Button
            android:id="@+id/bt_listener_two"
            android:text="方式二:匿名内部类"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/bt_listener_three"
            android:text="方式三:内部类监听"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/bt_listener_four"
            android:text="方式四:Activity本身实现监听事件"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/bt_listener_five"
            android:text="方式五:外部类作为监听"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
    

      MyButtonListener.class

    public class MyButtonListener implements View.OnClickListener {
        private Context context;
        public MyButtonListener(Context context){
            this.context = context;
        }
        @Override
        public void onClick(View v) {
            Toast.makeText(context,"方式五:外部类",Toast.LENGTH_LONG).show();
        }
    }
    
  • 相关阅读:
    linux软件包安装yum
    linux软件包安装rpm
    使用OwnCloud建立属于自己私有的云存储网盘
    Linux 防火墙
    Linux docker
    llinux 权限2
    详列JDK中的设计模式(二)结构型
    详列JDK中的设计模式(一)创建型
    JavaWeb学习总结(一) JavaWeb基础与Tomcat服务器
    老生常谈-从输入url到页面展示到底发生了什么
  • 原文地址:https://www.cnblogs.com/langdon/p/6223985.html
Copyright © 2011-2022 走看看