package com.jisi.keji.rxjavademo; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; import rx.Observable; import rx.Subscriber; import rx.functions.Action1; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // getraxjavaMethod(); raxjavaSecondMethod(); } }); } private void raxjavaSecondMethod() { Observable<String> myObservable = Observable.just("Hello, world!"); //Action1观察者的一个封装类 Action1<String> onNextAction = new Action1<String>() { @Override public void call(String s) { Toast.makeText(getApplication(), "内容=" + s, Toast.LENGTH_SHORT).show(); } }; //一下代码为上边代码的链式编程写法 myObservable.subscribe(onNextAction); Observable.just("hello gsc!").subscribe(new Action1<String>() { @Override public void call(String s) { Toast.makeText(getApplication(), "内容=" + s, Toast.LENGTH_SHORT).show(); } }); } //Rxjava 第一版hello private void getraxjavaMethod() { //创建一个被观察者 Observable<String> string = Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("Hello world!"); subscriber.onCompleted(); } }); //创建一个订阅者(观察者) Subscriber<String> sub=new Subscriber<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { System.out.println("输入内容"+s); Toast.makeText(getApplication(),"内容="+s,Toast.LENGTH_SHORT).show(); } }; //重要一句话 string.subscribe(sub);//没有这句话无法两者关联 //如果订阅者(观察者)与被观察者没有关联不会弹出Toast } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
Rxjava 自学笔记(希望能帮到想学的小伙伴)在此感谢 jack 大神们的开源贡献精神
最新推荐文章于 2019-06-04 10:58:05 发布