Android的四种事件处理

您所在的位置:网站首页 android基于监听的事件处理机制的4种实现方式是什么 Android的四种事件处理

Android的四种事件处理

2024-07-03 04:58| 来源: 网络整理| 查看: 265

android 的四种事件处理 Activity对象作为事件监听器内部类作为事件监听器匿名内部类作为事件监听器绑定标签来处理

Activity对象作为事件监听器

第一种方法:基于监听的事件处理,即继承接口并且实现相对应的方法,所以要重写接口的方法。 步骤:让MainActivity继承接口,重写方法,并给UI组件添加监听即可 package com.sise.example;

import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView tv1; Button bt1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

tv1=findViewById(R.id.tv1); bt1=findViewById(R.id.bt1); bind(); }

public void bind(){ bt1.setOnClickListener(this); } @Override public void onClick(View v) { tv1.setText(“你使用的是直接把Activity 作为事件监听器”);

} } 内部类作为事件监听器

第二种方法:内部类作为事件监听器,即让自己的一个内部类继承接口并且实现相对应的方法 步骤:让本类任意类继承接口,重写接口方法,UI组件添加调用该方法即可 package com.sise.example;

import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends AppCompatActivity{ TextView tv1; Button bt1;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一种方法:基于监听的事件处理,即继承接口并且实现相对应的方法,所以要重写接口的方法 tv1 = findViewById(R.id.tv1); bt1 = findViewById(R.id.bt1); bt1.setOnClickListener(new BindOnClinck()); }

public class BindOnClinck implements View.OnClickListener{

@Override public void onClick(View v) { tv1.setText("内部类作为事件监听器"); }

}

}

匿名内部类作为事件监听器

第三种方法:匿名内部类作为事件监听器,即创建监听的同时,直接重写监听方法 步骤:监听UI组件同时,添加监听的方法 package com.sise.example;

import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends AppCompatActivity{ TextView tv1; Button bt1;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一种方法:基于监听的事件处理,即继承接口并且实现相对应的方法,所以要重写接口的方法 tv1 = findViewById(R.id.tv1); bt1 = findViewById(R.id.bt1); bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv1.setText("匿名内部类作为事件监听器"); } }); }

}

绑定标签来处理

第四种方法:绑定标签来处理,即把方法声明到xml文件中,xml调用MainActivity的方法即可 步骤:在MainActivity中写方法,xml调用方法即可成功 xml要将Button修改对应的方法

package com.sise.example;

import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends AppCompatActivity{ TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一种方法:基于监听的事件处理,即继承接口并且实现相对应的方法,所以要重写接口的方法 tv1 = findViewById(R.id.tv1); } public void BindOnClick(View v){

tv1.setText("绑定标签来进行事件处理"); }

}

综上,对于事件处理少的可以用匿名内部类,最方便。内部类优于其他方法,是第二选择。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3