В Android у меня есть текстовое представление, определенное следующим образом:
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:textColorHighlight="#000000"
android:textIsSelectable="true" />
Моя цель состоит в том, что после 4 кликов я хочу начать новую деятельность. Мне нужно сделать это с помощью RXJava; это требование. Или rxAndroid
, rxBinding
и т.д.
Моя активность выглядит так:
public class MainActivity extends Activity implements onClickListener {
TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.text1);
tv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.text1){
}
}
}
ОБНОВЛЕНИЕ: но это всего лишь стандартный способ сделать это. Должен быть способ сделать с реактивным API rxJava.
Поэтому вместо использования onClicklistener
с rxBinding
я читал, что мы можем сделать это:
RxView.clicks(tv).flatMap(tv -> {
// another observable which can throw onError.
return Observable.error(null);
}).subscribe(object -> {
Log.d("CLICK", "textview clicked", start activity);
}, error -> {
Log.d("CLICK", "ERROR");
});
Могу ли я как-то использовать команду в rxBinding
, чтобы она выполнялась только после 4 кликов? Я не собираюсь хранить статическую переменную или использовать анонимный класс и хранить в нем переменную-член для подсчета. Для этого должен быть наблюдаемый метод.