在我的Android应用中,我有2个editText和一个textView。我在我的应用程序中使用RxJava。我希望文本视图显示两个可编辑文本字段的组合。
我使用Observable.combineLates如下:
EditText editText1 = findViewById(R.id.edit_text_1);
EditText editText2 = findViewById(R.id.edit_text_2);
TextView textView = findViewById(R.id.textView);
Observable<String> s1 = RxTextView.textChanges(editText1).map(CharSequence::toString);
Observable<String> s2 = RxTextView.textChanges(editText2).map(CharSequence::toString);
Observable<String> source = Observable.combineLatest(s1,s2, (c1,c2)->c1+" "+c2);
source.subscribe(textView::setText);
当我运行应用程序时,我看到文本视图以相反的顺序显示其内容,即源2中的文本出现在文本1的源文件之前。只有当我将s2与s2内部的swapLatest交换时,它才能按预期工作。 知道为什么吗?