自定义全局监听(任意位置任意行为监听)

今天开发中遇到了一个问题,就是我想着当软件不是出于当前页面,但是当其他页面收到别人来的消息时,这个页面的某处可以做出相应的反应,于是就想着设置一个类似onclicklistener的监听事件。于是自己就仿照着点击事件写了一下,但是发现还是有问题,那就是以前都是自定义控件然后在控件当中自定义监听,但是现在是在不同的activity之间的监控,也就是说任意位置的监听。在网上查了很久也没有找到一个合适的例子,于是自己就又回到了原点仿照点击事件写了一个全局的接口,把相应的事件都写到全局工具里去了,结果实现了。下面就是代码(其实想明白了会发现特别简单):

首先是mainactivity:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AppUtils.setOnClickShowToast(new OnClickShowToast() {
            @Override
            public void onShowToastClickListener(String text) {
                Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
            }
        });
    }
    public void toNextPage(View view){
        startActivity(new Intent(this,SecondPagerActivity.class));
    }
}
然后是第二个页面代码:

public class SecondPagerActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second_pager);
    }
    public void firstPagerShowToast(View view){
        AppUtils.onClickShowToasts.onShowToastClickListener("你好");
    }

}
这两个页面的xml布局就不用写了吧,每个里面就只有一个button;

下面是Apputils中的代码:

public class AppUtils {
    public static OnClickShowToast onClickShowToasts;
    public static void setOnClickShowToast(OnClickShowToast onClickShowToast){
        onClickShowToasts=onClickShowToast;
    }
}
下面是接口中的代码:

public interface OnClickShowToast{
    public void onShowToastClickListener(String text);
}

其实这样就可以实现在任意地方做任意监听了。其实很简单的!
最后把demo我上传的资源里面了,希望对大家有帮助。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值