Android 回调实例
来源:互联网 发布:java程序设计pdf百度云 编辑:程序博客网 时间:2024/05/01 21:18
<span style="font-family: Arial, Helvetica, sans-serif;">import cc.cn.ThreadSubclass.YourListener;</span>
import android.app.Activity;import android.os.Bundle;/** * Demo描述: * Android中回调接口使用实例 */public class MainActivity extends Activity { private ThreadSubclass mThreadSubclass; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mThreadSubclass=new ThreadSubclass(); mThreadSubclass.setYourListener(new YourListener() { @Override public void onSomeChange(String info,int i) { System.out.println("------> info="+info); System.out.println("------> i="+i); } }); mThreadSubclass.start(); } }</span>
ThreadSubclass如下:
<span style="font-family:KaiTi_GB2312;font-size:18px;">package cc.cn; public class ThreadSubclass extends Thread { private YourListener mYourListener=null; @Override public void run() { super.run(); for (int i = 0; i < 5; i++) { System.out.println("Now is "+i); } if (mYourListener!=null) { mYourListener.onSomeChange("输入已经完毕",9527); } } //回调接口(监听器) public interface YourListener { public void onSomeChange(String info,int i); } //设置回调接口(监听器)的方法 public void setYourListener(YourListener yourListener) { mYourListener = yourListener; } }</span>
接口回调的条件就是一个接口,两个类,两个类之间互相操作。无论是哪两个类,如Service和Activity,Fragment和Fragment,Fragment和Activity等等。
下面再讲一个例子说明,Fragment是项目中常用的组件,但是他们之间交互你是怎么实现的呢?不得其领的人应该做起来是比较困难的,像以前的我。如FragmentA想要改变FragmentB的UI,你首先可能会想到在FragmentB中写一个方法如changeFragmentUI()来改变FragmentB的UI,1、你首先想到的是new FragmentB().changeFragmentUI(),但是你试过后发现是不行的报:NullPointerException。这是因为你有重新new了一个FragmentB,而需要改变的组件初始化是在原来的FragmentB。2、把changeFragmentUI设为static,那就可以FragmentB.chaneFragmentUI()。这样虽然不会报空指针异常,但是static方法里面的变量也就必须全部是static,也就是你要改变UI的组件都要声明是static,想想,如果有太多的static那样肯定是不好的。这时如果会用接口回调那么就能解决你所有的烦恼啦,下面举例实现两个Fragment之间交互来改变彼此UI的例子。当然你也可以用官方提供的Fragment之间通信的方法。
0 0
- android回调实例
- Android 回调实例
- android 回调机制实例!
- Android 接口回调实例
- Android 回调实例详解
- Android 接口回调实例
- Android性能调优实例
- Android的接口回调的Demo实例
- Android实例
- android实例
- android 实例
- Android实例
- Android性能调优实例(五)
- android 回调函数二:应用实例
- [Android实例] android json
- js 回调实例
- JAVA 回调实例
- block回调实例
- NYOJ Gone Fishing 贪心策略
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 微信开发自定义菜单获取OpenID
- DDR布线规则与过程
- 拼图响应式前端框架版响应式后台
- Android 回调实例
- CUDA测试函数汇总
- 状态栏变白 变黑 iOS 新手笔记
- python中range()、xrange()和np.arange()区别
- 记录jQuery的一些用法
- ios面试题整合4
- 系统编译错误记录
- maven项目导入eclipse
- ios 网络请求问题