如何为按钮添加监听方式总结

本文概述:

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

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

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

  • 编写思路:

    • 在布局文件中:android平板电脑价格

      • 指定控件 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放在中间去

    在Android 中如何为控件添加监听器(三种方式)

方式二:采用匿名内部类

  • 编写思路:

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

    • 在MainActivity中

      • 在onCreate内:

        • 获取控件实例
        • 为控件添加监听(使用匿名内部类重写onClick方法)
  • android是什么系统局代码:此时不能设置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();
       }
    }
    
  • 运行结果:

    在Android 中如何为控件添加监听器(三种方式)

方式三:MaiJavanActivity 实现 View.OnCliappointmentckListener 接口

  • 编写思路:

    • 在布局文件中:

      • 指定控件 id
    • 在Majava培训inActi接口文档vity声明处:实现 View.OnClickListener 接口

    • 在MappearanceainActivity中:

      • 在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("按钮被点击了");
       }
    }
    
  • 运行效果:

    在Android 中如何为控件添加监听器(三种方式)