android 中 Button 的监听事件的多种实现方式

本文介绍了在Android应用开发中实现按钮点击事件监听的四种常见方法:通过内部类、匿名内部类、本类对象以及XML配置文件的方式,并详细展示了每种方法的具体实现代码。

1、在开发中对一个按钮的监听我们可以采用以下四种方式:

1)采用内部类的方式

public class MainActivity extends Activity {
    private Button btn = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.btn = (Button) this.findViewById(R.id.btn);
        this.btn.setOnClickListener(new MyOnclickBtn());
    }

    // 方式一 采用内部类
    private class MyOnclickBtn implements OnClickListener {
        @Override
        public void onClick(View v) {

        }
    }

}
2)采用匿名内部类的方式:

public class MainActivity extends Activity {
    private Button btn = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.btn = (Button) this.findViewById(R.id.btn);
        this.btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });
    }

}

3)使用本类对象的方式

public class MainActivity extends Activity implements OnClickListener {
    private Button btn = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.btn = (Button) this.findViewById(R.id.btn);
        this.btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }

}

4)采用配置.xml 文件的方式来反射实现监听事件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity" >
 

    <Button
        android:id="@+id/btn"
	android:onClick="myBtnOnclick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:text="确定" />

</LinearLayout>
//代码这样调用:
public class MainActivity extends Activity {
    private Button btn = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.btn = (Button) this.findViewById(R.id.btn);
    }

    public void myBtnOnclick(View view) {
	//to do something
    }

}
//关于第四方法中一定要保证.xml 文件中配置的方法名与代码中的方法名一致。







                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖心书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值