安卓自定义控件(View)(二)之接口回调机制实现TopBar的点击事件

在上一篇文章中,我介绍了如何自定义控件的基本三大步骤,上一篇文章麻雀虽小五脏俱全,在大的项目也是从小一点点做起来的,今天我就来说说如何给自定义的控件添加监听事件,并且对代码进行优化。说起安卓接口回调机制,我相信很多人尤其是像我这样的自学者,刚学的时候听起来更是一头雾水,今天我就在上一篇文章的基础上继续讲解(下面所讲纯是我对接口回调的个人理解,可能会很通俗,很适合新手,如有错误欢迎批评改正)
我将接口回调机制分为四个步骤:
1、定义一个接口(Interface)起名为TopBarListener,在接口中定义方法---->public void leftButtonClick();
2、在TopBar.java类中:定义方法public void setOnLeftButtonClickListener(TopBarListener topBarListener),以TopBarListener 对象作为方法的参数,并在调用TopBarListener 类中的leftButtonClick()方法。重点内容:特别注意这里的TopBarListener 对象只是进行了声明,而没有真正的new出来,所以不需要重写 onSuper()方法
3、在TopBar.java 类中,为左边按钮设置监听器,并在onClick()方法中调用 1 中的方法:leftButtonClick()。
4、在MainActivity中使用TopBar类中定义的–>setOnLeftButtonClickListener(TopBarListener topBarListener)方法,此时,就需要对 1 中定义的接口(Interface)中的–>public void onSuper();方法进行重写。重点内容:此处对TopBarListener 实例化并且new了出来,就需要重写 leftButtonClick()方法了,完成点击事件

下面我以的代码为例,进一步讲解我的demo:

  1. 定义接口:

package com.example.test;

public interface TopBarListener {
	public void leftButtonClick();
}

2、在TopBar.java类中,调用接口中的对象,将对象暴露给使用者,来实现leftButtonClick()方法

//定义接口
	private TopBarListener topBarListener;
	//定义方法使用接口机制   该方法的主要目的是暴露给使用者   使用者通过重写topBarListener的方法   实现onClick的功能
	public void setOnLeftButtonClickListener(TopBarListener topBarListener){
		this.topBarListener = topBarListener;
	}

3、在TopBar.java 类中,为左边按钮设置监听器,并在onClick()方法中调用 1 中的方法:leftButtonClick()。

// 使用接口回调机制 实现按钮的点击事件
		leftButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				topBarListener.leftButtonClick();
			}
		});

4、在MainActivity类中,重写leftButtonClick();


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       TopBar topBar = (TopBar) findViewById(R.id.topbar);
       //对方法进行重写
       topBar.setOnLeftButtonClickListener(new TopBarListener() {
		
		@Override
		public void leftButtonClick() {
			// TODO Auto-generated method stub
			Toast.makeText(MainActivity.this, "left", Toast.LENGTH_SHORT).show();
		}
	}) ;
    }
}

好了 至此,一个完整的自定义控件+接口回调机制实现点击事件就完成了,相信看完这个你也很快就学会了吧。哈哈
我的源码在这里:源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值