Skip to content

Instantly share code, notes, and snippets.

@Sorbh
Created February 27, 2018 10:08
Show Gist options
  • Save Sorbh/a691f7c32f584efa3a4cbdbec2496197 to your computer and use it in GitHub Desktop.
Save Sorbh/a691f7c32f584efa3a4cbdbec2496197 to your computer and use it in GitHub Desktop.
Java class to get Observable from TextView/EditText or class extend TextView
public static Observable<String> getTextWatcherObservable(TextView textView){
final PublishSubject<String> subject = PublishSubject.create();
textView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
subject.onNext(s.toString());
}
});
return subject;
}
public static Observable<Integer> itemSelectionObservable(Spinner spinner){
final PublishSubject<Integer> subject = PublishSubject.create();
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
subject.onNext(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
subject.onNext(0);
}
});
return subject;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment