安卓20:Android Studio 组件监听事件实现的三种方法

匿名内部类的方法

  1. 在xml文件中初始化组件并设置id属性,以便在java文件中可以通过findViewById来获取组件。
  2. 初始化当前所需要控件:private Button xxxx,通过findViewById方法(参数为R中的id),返回一个View的对象,系统自动强转成组件对象–所有组件都是view类的子类。
  3. 设置组件的监听器,通过监听器实现我们点击组件需要操作的事情:组件对象在setOnClickListener方法中new一个OnClickListener类,并在OnClickListener类的实现中写出需要实现的代码。
protected void onCreate(Bundle savedInstanceState) {
    
    
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button=findViewById(R.id.button1);
    button.setOnClickListener(new View.OnClickListener() {
    
    
        @Override
        public void onClick(View v) {
    
    
            Toast.makeText(MainActivity.this, "单击了按钮1", Toast.LENGTH_SHORT).show();
        }
    });
}

通过onClick属性实现

  1. 在xml文件中初始化组件并设置id属性,以便在java文件中可以通过findViewById来获取组件
  2. 在activity的java文件中编写一个包含View类型参数的方法。方法是自己定义设置的。
    在这里插入图片描述
  3. 在xml布局文件中,将组件的android:onClick属性指定为步骤2中的方法名。例:
    在这里插入图片描述

通过OnClickListener接口方式实现事件监听

  1. 在xml文件中初始化组件 将当前Activity实现OnClickListener接口。
public class MainActivity extends Activity implements View.OnClickListener
  1. 重写OnClickListener接口的onClick();方法。
  2. 在onCreate方法中调用,参数直接写this,即Mainactivity的引用,如:
public class MainActivity extends Activity implements View.OnClickListener{
    
    
 private Button btn;
 protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=findViewById(r.Id.btn1);
        btn.setOnClickListener(this); //设置button组件的点击监听事件
}
    @Override
    public void onClick(View v) {
    
    
        Log.i("tag", "第三种方式:通过OnClickListener接口实现事件监听");
 		//实现点击事件的代码
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43374694/article/details/113263221