Android开发中按钮的四种点击事件

本文详细介绍了Android中按钮点击事件的四种实现方式:使用内部类、匿名内部类、MainActivity实现OnClickListener接口以及通过声明方法的方式。每种方法都有详细的代码示例,帮助读者更好地理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:Hello,大家好!在java中,我们知道按钮的点击事件一共有三种,在学习android开发的过程中呢,我们发现android的按钮点击事件一共有四种,那么分别是哪四种呢?让我们看一下吧!

 

1.定义一个内部类

      内部类定义:在一个类中定义类

      方法:在内部中的类实现OnClickListener接口,重写onClick方法,如下代码示例

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        	//找到按钮
        Button btn_call = (Button) findViewById(R.id.button1);
        
        	//给按钮设置一个点击事件
        btn_call.setOnClickListener(new MyClickListener());
    }
    	
    //定义一个类,去实现按钮所需要的接口类型
    private class MyClickListener implements OnClickListener
    {
    		//Called when a view has been clicked.
		@Override
		public void onClick(View v) {
                    //此处填写点击按钮后,要执行的代码
                    }
}

我们通过调用按钮的setOnClickListener()方法为按钮设置监听对象(就是代码中实现了OnClickListener接口的对象),监听对象的生成使用的方法是内部类的形式

 

2.通过匿名内部类

    匿名内部类:没有名字的类,只能创建一个对象

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        	et_number = (EditText) findViewById(R.id.editText1);
        
        	//[2]找到按钮
        Button btn_call = (Button) findViewById(R.id.button1);
        
        	//[3]给按钮设置一个点击事件
        btn_call.setOnClickListener(new OnClickListener(){

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

        });
    }

	private void method() {
		
	}

 匿名内部类的格式为:new 接口名(){

        需要重写的方法

}

3.MainActivity实现OnClickListener接口

含义:让当前类实现OnClickListener接口

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		et_number = (EditText) findViewById(R.id.editText1);

		// [2]找到按钮
		Button btn_call = (Button) findViewById(R.id.button1);
		Button btn_call2 = (Button) findViewById(R.id.button2);
		Button btn_call3 = (Button) findViewById(R.id.button3);

		// [3]给按钮设置一个点击事件
		btn_call.setOnClickListener(this);
		btn_call2.setOnClickListener(this);
		btn_call3.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// 在具有多个按钮的情况下,可以判断哪一个按钮对应的要做什么事情
		switch (v.getId()) {

		case R.id.button1: // 代表点击了第一个按钮
			my();
			break;

		case R.id.button2: // 代表点击了第一个按钮
			my();
			break;

		case R.id.button3: // 代表点击了第一个按钮
			my();
		
			break;
		default:
			break;
		}

	}

	private void my() {
	
	}

使用此方法可以判断是哪个按钮,在众多按钮中进行选择,实现不同按钮达到不同效果的目的

4.声明一个方法,方法名和你要点击的这个按钮在布局中声明的onClick属性一样

  	<Button
  	    android:id="@+id/button4"
  	    android:layout_width="wrap_content"
  	    android:layout_height="wrap_content"
  	    android:layout_alignLeft="@+id/button2"
  	    android:layout_below="@+id/button2"
  	    android:layout_marginTop="38dp"
  	    android:onClick="myOnClick"
  	    android:text="test" />

    //方法的声明是严格固定的
    public void myOnClick(View v)
	{
		System.out.println("我是第四种点击事件");
	}

方法的声明是严格固定的,是不能改变的,当然,参数的名字除外。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值