Android TV 如何在单击操作按钮时更改 detailsFragment 数据?
Android TV how to change detailsFragment data when I click action button?
我想在单击操作 button
时更改 fullWidthDetailsOverviewRowPresenter
中的描述,该怎么做?我可以更改数据,但是如何刷新 view
?
例如,当我点击"BUY.99"时,红框中的文字会发生变化。
您需要添加这一行:
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
是您用来创建 DetailsOverviewRow
实例的 oldItem
,但描述属性已更改。
为 DetailsOverviewRow
设置新项目后,将再次调用描述展示器(本示例中的 SectionDetailsDescriptionPresenter
),并在中设置 newItem
描述属性你要的红框。
我想在单击操作 button
时更改 fullWidthDetailsOverviewRowPresenter
中的描述,该怎么做?我可以更改数据,但是如何刷新 view
?
例如,当我点击"BUY.99"时,红框中的文字会发生变化。
您需要添加这一行:
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
是您用来创建 DetailsOverviewRow
实例的 oldItem
,但描述属性已更改。
为 DetailsOverviewRow
设置新项目后,将再次调用描述展示器(本示例中的 SectionDetailsDescriptionPresenter
),并在中设置 newItem
描述属性你要的红框。