如何在BrowseFragment上实现longClickListener(Android Leanback库)

时间:2015-05-11 09:23:29

标签: android onitemlongclicklistener leanback

我在我的项目中使用了Leanback Library的浏览片段。

通过设置browsefragements setOnItemViewClickedListener来检测项目上的简单按钮。

我想检测项目上的长按。任何提示?



setOnItemViewClickedListener( getDefaultItemClickedListener() );

protected OnItemViewClickedListener getDefaultItemClickedListener() {

        return new OnItemViewClickedListener() {

            @Override
            public void onItemClicked(Presenter.ViewHolder viewHolder, Object item, RowPresenter.ViewHolder viewHolder2, Row row) {

            }
        };
    }




提前谢谢 DD

1 个答案:

答案 0 :(得分:1)

我不知道你是否得到了答案,但是你想要添加自己的Presenter子类,如下所示:

private static class LongPressItemPresenter extends Presenter {

    ...

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, Object object) {
        viewHolder.view.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                //todo do something here specific to this item
            }
        });
    }

    ...

}

如果您有多种类型需要不同的长按操作,或者您可以在onBindViewHolder中执行switch()或if / else树,则可能需要在行/片段适配器级别使用ClassPresenterSelector( )。

mPresenterSelector = new ClassPresenterSelector();
mPresenterSelector.addClassPresenter(NormalItem.class, new CardViewPresenter());
mPresenterSelector.addClassPresenter(CustomItem.class, new LongPressItemPresenter());
mAdapter = new ArrayObjectAdapter(mPresenterSelector);
setAdapter(mAdapter);