I rxandroid für debounce Betrieb auf einer EditText Suche verwendetRxAndroid Textview Ereignisse automatisch vor Text Änderungsereignisse genannt
I verwendet
private void setUpText() {
_mSubscription = RxTextView.textChangeEvents(searchStation)//
.debounce(500, TimeUnit.MILLISECONDS)// default Scheduler is Computation
.observeOn(AndroidSchedulers.mainThread())//
.subscribe(getOps().getdata());
}
und Beobachter als
public Observer<TextViewTextChangeEvent> getdata()
{
return new Observer<TextViewTextChangeEvent>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(TextViewTextChangeEvent onTextChangeEvent) {
// stationsugession(onTextChangeEvent.text().toString());
//here i called link to get the data from the server
}
};
}
Mein Problem ist der Link wird aufgerufen, bevor Änderungen am Edittext auftreten. Und es ruft nicht die textchange events auf. Bin ich etwas fehlt Was mache ich hier falsch. Ich bin neu bei rxandroid und rxjava.
benutzte ich
compile 'io.reactivex:rxandroid:1.1.0'
compile 'io.reactivex:rxjava:1.1.0'
compile 'com.jakewharton.rxbinding:rxbinding:0.2.0'
EDIT:
Es funktioniert nun jetzt, ich wurde in meiner Logik für das Erhalten Liste einen Null-Zeiger bekommen .. wenn ich die onError Methode verwendet und ein setzen Stacktrace Ich habe das Problem gefunden. Wenn Sie den ersten Anruf überspringen möchten, rufen Sie bitte .skip (1) an. [Dank Daniel Lew]
Der obige Code funktioniert perfekt jetzt
Was ist der Inhalt des TextViewChangeEvent? –
TextViewTextChangeEvent ist eine Klasse innerhalb von com.jakewharton.rxbinding: rxbinding für das Abrufen von Editiertext-Ereignissen Ich denke –
Ich weiß. Was wird zurückgegeben, wenn Sie 'onTextChangeEvent.text()' aufrufen und das Ergebnis protokollieren? –