Android 实现按钮监听的几种方式

简介: Android 实现按钮监听的几种方式

Android 目前主要有如下几种监听方式:

第一种:一个按钮对应一个监听。


Button buttontest;  
      buttontest = (Button) findViewById(R.id.button1);  
      buttontest.setOnClickListener(new View.OnClickListener() {  
    @Override  
    public void onClick(View v) {  
        // TODO Auto-generated method stub  
        Log.i("TEST", "button onClick");  
    }  
});  


第二种方式:多个按钮对应着一个监听。

    Button start,stop;
    start = (Button) findViewById(R.id.button1);  
    stop = (Button) findViewById(R.id.button2);  
    start.setOnClickListener(mylistener );  
    stop.setOnClickListener(mylistener );  
    View.OnClickListener mylistener = new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                switch (v.getId()) {  
                case R.id.button1:  
                    Log.d(TAG, "Start to recorder video\n");  
                    start_recorde();  
                    break;  
                case R.id.button2:  
                    Log.d(TAG, "Stop to recorder video\n");  
                    stop_recorde();  
                    break;  
                default:  
                    break;  
                }     
            }  
        };  


第三种方式:在xml中绑定监听

<Button   
android:id="@+id/button1"   
android:layout_height="wrap_content"            
android:layout_width="wrap_content"   
android:onClick="mybuttonlistener">  
</Button>  


对应的java代码如下:

     Button btn = (Button) findViewById(R.id.button1);  
    public void mybuttonlistener(View target){  
        //do something5       
    }  


这里我就说完了监听的几种方式,下面我们再来看看监听实现的几种方式:

第一种:自身类作为事件监听器

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setText("单击");
btn1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(this,"已单击我...",Toast.LENGTH_SHORT).show();
System.out.println("已单击我...");
}
}


第二种方式:外部类作为事件监听器

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Act2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act2);
Button btn2 = (Button) findViewById(R.id.btn2);
btn2.setText("单击");
btn2.setOnClickListener(new OuterClass("已单击我..."));
}
}
class OuterClass implements View.OnClickListener{
private String str="已单击我....";
public OuterClass(String str){
super();
this.str=str;
}
@Override
public void onClick(View v) {
System.out.println(str);
}
}


第三种方式:内部类作为事件监听器

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Act3 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act3);
Button btn3 = (Button) findViewById(R.id.btn3);
btn3.setText("单击");
btn3.setOnClickListener(new OuterClass());
}
class OuterClass implements View.OnClickListener{
@Override
public void onClick(View v) {
Toast.makeText(Act3.this,"已单击我...",Toast.LENGTH_SHORT).show();
System.out.println("已单击我...");
}
}
}


第四种方式:匿名类作为事件监听器

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Act4 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act4);
Button btn4 = (Button) findViewById(R.id.btn4);
btn4.setText("单击");
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(Act4.this,"已单击我...",Toast.LENGTH_SHORT).show();
System.out.println("已单击我...");
}
});
}
}


以上我就说完了Android中按钮的点击监听事件。



欢迎start,欢迎评论,欢迎指正

相关文章
|
6月前
|
测试技术 Android开发
Android按钮防抖动,避免发送多次请求
Android按钮防抖动,避免发送多次请求
113 0
|
4月前
|
监控 Android开发 开发者
Android经典面试题之实战经验分享:如何简单实现App的前后台监听判断
本文介绍在Android中判断应用前后台状态的两种方法:`ActivityLifecycleCallbacks`和`ProcessLifecycleOwner`。前者提供精细控制,适用于需针对每个Activity处理的场景;后者简化前后台检测,适用于多数应用。两者各有优劣:`ActivityLifecycleCallbacks`更精确但复杂度高;`ProcessLifecycleOwner`更简便但可能在极端场景下略有差异。根据应用需求选择合适方法。
39 2
|
5月前
|
XML IDE 开发工具
【Android UI】自定义带按钮的标题栏
【Android UI】自定义带按钮的标题栏
59 7
【Android UI】自定义带按钮的标题栏
|
4月前
|
API Android开发
Android 监听Notification 被清除实例代码
Android 监听Notification 被清除实例代码
|
5月前
|
Android开发
技术经验分享:Android前后台切换的监听
技术经验分享:Android前后台切换的监听
82 2
|
5月前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
5月前
|
存储 Android开发
安卓app,MediaPlayer播放本地音频 | 按钮控制播放和停止
在Jetpack Compose中,不直接操作原生Android组件如`Button`和`MediaPlayer`,而是使用Compose UI构建器定义界面并结合ViewModel管理音频播放逻辑。以下示例展示如何播放本地音频并用按钮控制播放/停止:创建一个`AudioPlayerViewModel`管理`MediaPlayer`实例和播放状态,然后在Compose UI中使用`Button`根据`isPlaying`状态控制播放。记得在`MainActivity`设置Compose UI,并处理相关依赖和权限。
|
5月前
|
XML Android开发 数据格式
37. 【Android教程】基于监听的事件处理机制
37. 【Android教程】基于监听的事件处理机制
81 2
|
5月前
|
XML Java Android开发
15. 【Android教程】按钮 Button/ImageButton
15. 【Android教程】按钮 Button/ImageButton
72 2
|
6月前
|
Android开发
Android监听USB设备插拔
Android监听USB设备插拔
874 7