java接口的使用
来源:互联网 发布:js 正则 可有可无 编辑:程序博客网 时间:2024/05/16 00:26
目的:实现不同类型之间的数据通信。
例子1:
借口:
public interface MsgListener { void onMessageArriverd(String msg);}
数据接收类
public class Receiver implements MsgListener{ @Override public void onMessageArriverd(String msg) { Log.i("kelijun","Receiver MSG"); //Toast.makeText(this,"Receiver MSG ",Toast.LENGTH_SHORT).show(); }}
数据发送类
public class Send extends Activity{ private Receiver mReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mReceiver=new Receiver(); mReceiver.onMessageArriverd("你好"); }}这个例子是发送消息给实现了接口的类,直接调用。
例子2:设置消息的监听,如果有消息了,将把消息发送给监听了这个消息的人。如果有很多类 ,设置了监听这个消息,那么这些类都会收到消息。
public interface MsgListener { void onMessageArriverd(String msg);}
2个接收数据的实现了接口的类
接口
public class Receiver implements MsgListener{ @Override public void onMessageArriverd(String msg) { Log.i("kelijun","Receiver MSG"); //Toast.makeText(this,"Receiver MSG ",Toast.LENGTH_SHORT).show(); }}发送数据的类
public class Receiver1 implements MsgListener{ @Override public void onMessageArriverd(String msg) { Log.i("kelijun","Receiver MSG 1"); //Toast.makeText(this,"Receiver MSG ",Toast.LENGTH_SHORT).show(); }}
public class Send extends Activity{ private Receiver mReceiver; private Receiver1 mReceive1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mReceiver=new Receiver(); mReceive1=new Receiver1(); setMsgListener(mReceiver); setMsgListener(mReceive1); msgListener.onMessageArriverd("你好"); } private MsgListener msgListener; public void setMsgListener(MsgListener msgListener) { this.msgListener = msgListener; }}
这里是不能达到目的的(测试过,只有后面receiver1才有打印),这个因为很多事情往往只是说如何做可以办到,但是你去做的时候往往结果不一样,就是因为我们人的思路是不一样的,比如有一个人对你说,抢银行赚了很多钱,你不要参照他的做法,你听过一句名言吗?失败是成功之母,所以我们只要学习失败,比如上面的例子,我们要思考为什么不可以,不要背那种方法可以。我觉得这才是学习之路,永远是思考,不是盲从,忙背。
比如我们国家中国,很多时候说什么GDP今天又增加了多少,人们的生活水平又如何升高了,人们是过的很好,我觉的应该把焦点放在失败的地方,比如说今天有多少人做了不喜欢的工作,又有多少人为了省钱饿肚子,看见喜欢的水果舍不得买,这样我们才有动力去完善我们的不足。失败是成功之母,为什么这句话大家不好好实践。把注意力放在不足的地方,然后去学习,去改正啊。
好了,其实我也不清楚上面的接口怎么实现的,那么我去想为什么,怎么才能办得到。
那么我修改一下
setMsgListener(mReceive1);setMsgListener(mReceiver);发现只有
mReceiver接收到消息,说明只有后面设置监听的人收到消息,前面的被覆盖了。那么我们去找到一种不能被覆盖的方法。
查资料然后改进后:
public class Send extends Activity { private List<MsgListener> msgListeners; private Receiver mreReceiver; private Receiver1 mreReceiver1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); msgListeners = new ArrayList<>(); mreReceiver = new Receiver(); mreReceiver1 = new Receiver1(); addListener(mreReceiver); addListener(mreReceiver1); for (int i = 0; i < msgListeners.size(); i++) { MsgListener l = msgListeners.get(i); l.onMessageArriverd("你好"); } } public void addListener(MsgListener l) { msgListeners.add(l); }}意思就是,必须要给每一个接口发送消息才行。
阅读全文
0 0
- java 接口的使用
- java 的接口使用
- Java接口的使用
- Java 接口的使用
- java接口的使用
- java-FileFilter接口的使用
- java native 接口的使用
- java 接口interface的使用
- java Enumeration接口的使用
- Java中接口的使用
- java接口的基本使用
- java中接口的使用
- [Java]SerialZable接口的使用
- Java的短信接口的使用
- Java中Comparator接口和Comparable接口的使用
- java中Comparable接口和Comparator接口的使用
- java中外部接口与内部接口的使用
- java Comparable接口与Comparator接口的使用与区别
- lecture7,Training Neural Networks, Part 2
- 代码大全 读书笔记(2)
- 项目请求参数封装
- js预处理阶段arguments深度解剖
- NOIP2012 Day2
- java接口的使用
- Druid大数据实时处理的开源分布式系统——Historical Node
- Oracle数据库、实例、用户、表空间、表之间的关系
- <二分答案加验证||最小生成树>bzoj 1821 部落划分
- 腾讯浏览服务接入文档
- iOS AutoLayout 简单运用(纯代码)
- <考试题> codevs 5440 运输计划 (二分+lca+dfs序+树上差分)
- 1701 H2王建瑜 连续第十二天
- 笨方法学习Python-习题19: 函数和变量