Android 控件监听器

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Android 控件监听器

WAsbry   2022-06-28 我要评论

本文概述:

  • 本文介绍了,在Android中为控件添加监听的三种常见方式

    • 设置控件的onClick属性
    • 采用匿名内部类
    • MainActivity 实现 View.OnClickListener 接口

方式一:在布局中添加onClick属性

  • 编写思路:

    • 在布局文件中:

      • 指定控件 id
      • 指定控件onClick属性
    • 在MainActivity中:

      • 在onCreate中拿到控件实例
      • 在onCreate之外,创建监听方法(方法名与前面设置的onClick属性相同)
  • 布局代码:指定控件的onClick属性(已经被废弃掉了)

    <Button
        ……
        android:id="@+id/button"
        android:onClick="buttonClick"
        …… />
    
  • Activity代码:

    public class MainActivity extends AppCompatActivity {
    ​
        private Button button;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            //获取控件示例
            button = findViewById(R.id.button);
        }
    ​
        public void buttonClick(View view) {
           setToast("点击了button按钮");
        }
    ​
        public void setToast(String string){
            Toast.makeText(this,string,Toast.LENGTH_SHORT).show();
        }
    }
    
  • 运行结果:可不可以限定Toast的提示位置?比如说将Toast放在中间去

方式二:采用匿名内部类

  • 编写思路:

    • 在布局文件中:指定控件 id

    • 在MainActivity中

      • 在onCreate内:

        • 获取控件实例
        • 为控件添加监听(使用匿名内部类重写onClick方法)
  • 布局代码:此时不能设置onClick属性

    <Button
        ……
        android:id="@+id/button"
        …… />
    
  • Java 代码

    public class MainActivity extends AppCompatActivity {
    ​
        private Button button;
    ​
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
    ​
            //获取控件示例
            button = findViewById(R.id.button);
    ​
            //添加监听
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    setToast("点击了按钮");
                }
            });
        }
    ​
        public void setToast(String string){
            Toast.makeText(this,string,Toast.LENGTH_SHORT).show();
        }
    }
    
  • 运行结果:

方式三:MainActivity 实现 View.OnClickListener 接口

  • 编写思路:

    • 在布局文件中:

      • 指定控件 id
    • 在MainActivity声明处:实现 View.OnClickListener 接口

    • 在MainActivity中:

      • 在onCreate方法内:

        • 拿到控件实例
        • 为控件注册监听器
      • 在onCreate方法外:重写onClick方法

  • 布局代码:

    <Button
        ……
        android:id="@+id/button"
        …… />
    
  • MainActivity 代码

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    ​
        private Button button;
    ​
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
    ​
            //获取控件示例
            button = findViewById(R.id.button);
            //为控件注册监听器
            button.setOnClickListener(this);
        }
    ​
        public void setToast(String string){
            Toast.makeText(this,string,Toast.LENGTH_SHORT).show();
        }
    ​
        @Override
        public void onClick(View view) {
            setToast("按钮被点击了");
        }
    }
    
  • 运行效果:

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们