文档章节

浅析接口,回调

Allen056
 Allen056
发布于 2015/04/13 09:40
字数 319
阅读 23
收藏 0

学了一段时间java,Android第一次写博客,记录下一个菜鸟的心得。一直没完全弄清回调的机制,不能灵活使用接口回调,被折磨了几次之后决定好好弄清接口回调。废话不多说,直接开始。

回调说直白一点就是由A可以使用B的代码用来干具体的事,举个例子来说假如你有100块,你可以决定怎么用,你妈,你爸也可以决定怎么用,当然具体的使用方式可以事不同的!下面结合Android举一个简单例子A使用B的字符串。

B类(被调用的)

public class BActivity {
 String dataString = "这是b的data";
 mInterface mmInterface;
 public void setlis(mInterface mInterface) {
  this.mmInterface = mInterface;   
  ddd();//
 }
 interface mInterface {
  void daying(String result);
 }
 public void ddd() {
  mmInterface.daying(dataString);
 }
}

A类(调用B)

 public class MainActivity extends Activity {
 TextView mTextView;
 BActivity mBActivity;
 mInterface mmiInterface = new mInterface() {
  @Override
  public void daying(String result) {
   mTextView.setText(result);
  }
 };
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mTextView = (TextView) findViewById(R.id.test);
  mBActivity = new BActivity();
  mBActivity.setlis(mmiInterface);
 }
}

 在A種實例化B的對象,可以調用事先預留好的接口。此時就在A種調用了B的dataString 數據,我這裡是將他顯示在一個TextView上,當然也可以用來做其他的事!

 

© 著作权归作者所有

共有 人打赏支持
Allen056
粉丝 0
博文 2
码字总数 1286
作品 0
成都
如何绑定页面生命周期(二)-基于Android Architecture Components的Lifecycle实现

上篇文章如何绑定页面生命周期(一)-Glide实现介绍了Glide实现生命周期感知的原理,这里我们再介绍基于Android Architecture Components的Lifecycle实现页面生命周期感知。 Lifecycle是And...

宇是我
07/29
0
0
浅析java callback 回调模式

看过spring、hibernate源码的朋友对callback回调模式应该并不陌生,用一句话来概括就是:“if you call me, i will call back”,说白了,就是有相互依赖关系的两个类之间的互相调用,现在看...

方绍伟
2014/01/06
419
3
DownloadManager之DownloadService浅析

用粗糙而简陋的语言描述完了Andriod系统的DownloadManager的DownloadThread类,那么,继续我们的粗糙吧。现在就来描述一下DownloadManager的生命——DownloadService类。一如前面的思路,现在...

刘焱
2014/03/20
0
1
浅析Express中的路由与应用模式

1. 引言 Express是一个基于Node.js的轻量级web开发框架,具有体积小,使用灵活等特点。查看Express的源码,如果不计供使用的中间件,主体框架只有一千余行代码,非常简练。 Express模型的核心...

solarpig
07/16
0
0
ES6之Promise 与 Node.js 8新特性之util.promisify()

2017年五月底Node.js 8正式发布,带来了 很多新特性 。本文讨论下util.promisify()这个方法。 Promise 介绍promisify之前,首先来看下Promise这个API,因为util.promisify()这个方法就是把原...

宛丘之上兮
07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

github精选:微信小程序开发技巧(12月31日更新)2016

框架部分 所有页面都需要在 app.json 文件中注册在 pages 数组中,注册格式为:"路径/文件名" 注:文件名无需添加扩展名 app.josn 中的 pages 数组中的第一个页面为小程序的启动页 每个页面的...

阿K1225
6分钟前
0
0
OSChina 周日乱弹 —— 小心着凉 @红薯

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:5.33起,其声呜呜然,如怨如慕,如泣如诉。余音袅袅,不绝如缕。分享Arch Enemy的单曲《Bridge Of Destiny (2009)》 《Bridge Of...

小小编辑
今天
297
4
what f,,

anlve
今天
9
0
初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
15
0
现场看路演了!

HiBlock
昨天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部