基于我们控制范围内发生的事件制作Observable
非常简单;无论是从视图(按钮点击,附加/分离事件)还是非视图(REST请求),包裹Observable
都是相对容易和直接的。
但是当谈到框架事件时呢?
作为一个例子,假设我想创建一个Observable
,它会向订阅者发出每个后退按钮,我该怎么办?
我所知道的两种处理后退按钮的方式来自Activity
的回调方式:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
和
@Override
public void onBackPressed() {
// do something on back.
return;
}
我怎样才能将其转换为Observable
?
答案 0 :(得分:2)
您可以使用Subject
s来实现此目的。例如:
Grid myGrid = new Grid();
VerticalLayout test = new VerticalLayout();
Bill testBill = new Bill(23, "Test", "Products", 3, new Date(), new Date());
BeanItemContainer<Bill> testItemContainer = new BeanItemContainer<Bill>(Bill.class);
testItemContainer.addItem(testBill);
myGrid.setContainerDataSource(testItemContainer);
test.addComponent(myGrid);
myGrid.setHeightMode(HeightMode.ROW);
myGrid.setHeightByRows(testItemContainer.size());