Я новичок в Reactive, поэтому полегче со мной, но я пытаюсь заменить асинхронную задачу, которая в настоящее время выполняется при изменении текста, на функцию автоматического предложения. Ниже показано, где я нахожусь с моим RX:
rest.getMemberList(etSearch.getText().toString())//rest interface
.subscribeOn(Schedulers.io())
.observeOn(RxAndroidSchedulers.mainThread())
.subscribe(new Action1<List<Member>>() {
@Override
public void call(List<Member> results) {
ListView ResultsListView = (ListView) findViewById(R.id.list);
MemberAdapter = new ResultRowAdapter(mContext, getLayoutInflater());
MemberAdapter.setMemberList(results);
ResultsListView.setAdapter(MemberAdapter);
}
};
Итак, я ищу несколько вещей: 1) я иду в правильном направлении с моей наблюдаемой? 2) как бы я справился с частью подписки? 3) любой другой совет, связанный с заменой асинхронных задач на RX, потому что это первый из нескольких, которые мне нужно сделать.
Редактировать:
Это то место, куда я попал и чувствую, что я ближе, но мне все еще нужно руководство. etSearch — это мое представление EditText.
if(etSearch.length()>2){
Observable<String> o1 = Observable.just(etSearch.getText().toString());
o1.subscribeOn(Schedulers.io())
.observeOn(RxAndroidSchedulers.mainThread()).subscribe(new Action1<String>() {
@Override
public void call(String s) {
List<Member> MemberList =rest.getMemberList(s);
ListView ResultsListView = (ListView) findViewById(R.id.list);
MemberAdapter = new ResultRowAdapter(mContext, getLayoutInflater());
MemberAdapter.setMemberList(MemberList);
ResultsListView.setAdapter(MemberAdapter);
}
});}