Android_RxBus传值
来源:互联网 发布:qt5.8连接mysql数据库 编辑:程序博客网 时间:2024/06/05 11:26
一:使用RxJava模仿EventBus传值,快速方便
依赖:
compile 'io.reactivex:rxjava:1.3.4'compile 'io.reactivex:rxandroid:1.2.1'
二:工具类
public class RxBus { private static volatile RxBus instance; private SerializedSubject<Object, Object> bus; public RxBus() { bus = new SerializedSubject<Object,Object>(PublishSubject.create()); } public static RxBus getInstance() { if (instance == null) { synchronized (RxBus.class) { if (null == instance) { instance = new RxBus(); } } } return instance; } //传入数据 public void post(Object o){ bus.onNext(o); } //返回类型--被观察者 public <T> Observable<T> tObservable(Class<T> event) { return bus.ofType(event); }}
import rx.Observable;import rx.android.schedulers.AndroidSchedulers;import rx.functions.Action1;import rx.schedulers.Schedulers;public class RxbusActivity extends AppCompatActivity { private TextView tv; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_rxbus); tv = (TextView)findViewById(R.id.tv); btn = (Button)findViewById(R.id.btn); //点击发送值 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { RxBus.getInstance().post("Android Stuio"); } }); //得到被观察者 Observable<String> observable = RxBus.getInstance().tObservable(String.class); //观察者查看 observable .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<String>() { @Override public void call(String s) { //改变TextView值 tv.setText(s); } }); }}
阅读全文
0 0
- Android_RxBus传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值
- 传值、传引用、传值
- iOS传值(block传值)
- IOS传值:block传值
- c#传值
- Linux服务器编程——Linux系统编程之进程
- 工作流基本概念__了解就行
- angular js基础点滴
- Spark:Scala实现常用的Transformation操作
- java 如何将十六进制字符串转换为 float 符点型?相互转换
- Android_RxBus传值
- 13、ES6 Iterator(遍历器)的概念
- android webview种植cookie要领
- stm32_004_stm32f103内部结构图
- SpringBoot使用本地jar包
- Android GC深度分析
- jsp中取值方式--${param.name }
- python踩过的一些坑
- 【java】获取当前时间currentTimeMillis()