【问题标题】:How to implement a longClickListener on BrowseFragment (Android Leanback Library)如何在 BrowseFragment 上实现 longClickListener(Android Leanback 库)
【发布时间】:2015-05-11 09:23:28
【问题描述】:

我在我的一个项目中使用 Leanback 库的浏览片段。

通过设置浏览片段 setOnItemViewClickedListener 来检测项目上的简单按钮按下。

我想检测一个项目上的长按。有什么建议吗?

setOnItemViewClickedListener( getDefaultItemClickedListener() );

protected OnItemViewClickedListener getDefaultItemClickedListener() {

        return new OnItemViewClickedListener() {

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

            }
        };
    }

提前致谢 dd

【问题讨论】:

    标签: android onitemlongclicklistener leanback


    【解决方案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
                }
            });
        }
    
        ...
    
    }
    

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

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

    【讨论】:

      猜你喜欢
      • 2016-08-02
      • 2018-06-16
      • 2015-09-21
      • 2019-05-11
      • 2018-05-21
      • 2010-11-02
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      相关资源
      最近更新 更多