【发布时间】:2016-01-19 15:51:20
【问题描述】:
在 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){
}
}
}
更新: 但这只是标准的做法。必须有办法使用响应式 rxJava API。
所以我读到我们可以这样做:
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 次后执行?我不希望存储静态变量,或使用匿名类并在其中存储成员变量以供计数。应该有一个可观察的方法。
【问题讨论】:
-
您正在尝试实现四次点击或仅点击 4 次,并且它们之间的时间未指定?
-
四次点击,但我可以接受 4 次点击,但有时间限制。效果一样好。
标签: android rx-java rx-android