如何基于框架回调事件创建Observable?

时间:2016-06-30 12:48:52

标签: android rx-java

基于我们控制范围内发生的事件制作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

1 个答案:

答案 0 :(得分:2)

您可以使用Subjects来实现此目的。例如:

    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());