2015-05-11 15 views
0

我在一個項目中使用了Leanback庫的browsefragment。如何在BrowseFragment上實現longClickListener(Android Leanback庫)

通過設置browsefragements setOnItemViewClickedListener來檢測項目上的簡單按鈕按下。

我想檢測項目上的longpress。有小費嗎?

setOnItemViewClickedListener(getDefaultItemClickedListener()); 
 

 
protected OnItemViewClickedListener getDefaultItemClickedListener() { 
 

 
     return new OnItemViewClickedListener() { 
 

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

 
      } 
 
     }; 
 
    }

在此先感謝 DD

回答

0

我不知道,如果你有你的答案,但你會希望添加自己的演示子類,如下所示:

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