文档章节

浅析接口,回调

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
ES6之Promise 与 Node.js 8新特性之util.promisify()

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

宛丘之上兮
07/26
0
0
浅析Express中的路由与应用模式

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

solarpig
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

7 个致命的 Linux 命令

导读 如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避...

问题终结者
昨天
0
0
设计模式:工厂方法模式(工厂模式)

工厂方法模式才是真正的工厂模式,前面讲到的静态工厂模式实际上不能说是一种真正意义上的设计模式,只是一种变成习惯。 工厂方法的类图: 这里面涉及到四个种类: 1、抽象产品: Product 2、...

京一
昨天
0
0
区块链和数据库,技术到底有何区别?

关于数据库和区块链,总会有很多的困惑。区块链其实是一种数据库,因为他是数字账本,并且在区块的数据结构上存储信息。数据库中存储信息的结构被称为表格。但是,区块链是数据库,数据库可不...

HiBlock
昨天
0
0
react native 开发碰到的问题

react-navigation v2 问题 问题: static navigationOptions = ({navigation, navigationOptions}) => ({ headerTitle: ( <Text style={{color:"#fff"}}>我的</Text> ), headerRight: ( <View......

罗培海
昨天
0
0
Mac Docker安装流程

久仰Docker大名已久,于是今天趁着有空,尝试了一下Docker 先是从docker的官网上下载下来mac版本的docker安装包,安装很简易,就直接拖图标就好了。 https://www.docker.com/products/docker...

writeademo
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部