Android TV如何在点击动作按钮时更改detailsFragment数据?

时间:2016-11-25 04:26:22

标签: android android-tv leanback

我想在点击操作fullWidthDetailsOverviewRowPresenter时更改button中的说明,该怎么办?我可以更改数据,但是如何刷新view

enter image description here

例如,当我点击"购买9.99美元"时,红色框中的文字将会改变。

1 个答案:

答案 0 :(得分:1)

您需要添加以下行:

detailsOverviewRow.setItem(newItem);

在您的DetailsFragment中,您可能会遇到以下情况:


    private DetailsOverviewRow detailsOverviewRow;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...
        detailsOverviewRow = new DetailsOverviewRow(oldItem);
        SectionDetailsPresenter detailsPresenter =
                new SectionDetailsPresenter(new  SectionDetailsDescriptionPresenter());

        detailsPresenter.setOnActionClickedListener(new OnActionClickedListener() {
            @Override
            public void onActionClicked(Action action) {
                if (action.getId() == ACTION_BUY) {
                    Object newItem = oldItem;
                    newItem.setDescription("new description");
                    detailsOverviewRow.setItem(newItem);
                }
            }
        });
    }

newItem是您用来创建oldItem实例的DetailsOverviewRow,但更改了描述属性。

DetailsOverviewRow设置新项目后,将再次调用描述演示者(此示例中为SectionDetailsDescriptionPresenter),并将newItem描述属性设置为红色你要求的盒子。