【问题标题】:How can I add onClickListener in Materialviewpage Adapter?如何在 Materialviewpage Adapter 中添加 onClickListener?
【发布时间】:2018-06-21 16:51:04
【问题描述】:

我正在使用来自 github 的这个库:https://github.com/florent37/MaterialViewPager。我想要不同的卡片视图来打开不同的活动。我怎样才能实现它?

我在 wiki 中找不到任何解决方案

TestRecyclerViewAdapter.java

public class TestRecyclerViewAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolder> {

List<Object> contents;

static final int TYPE_HEADER = 0;
static final int TYPE_CELL = 1;

public TestRecyclerViewAdapter(List<Object> contents) {
    this.contents = contents;
}

@Override
public int getItemViewType(int position) {
    switch (position) {
        case 0:
            return TYPE_HEADER;
        default:
            return TYPE_CELL;
    }
}

@Override
public int getItemCount() {
    return contents.size();
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = null;

    switch (viewType) {
        case TYPE_HEADER: {
            view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.list_item_card_big, parent, false);
            return new RecyclerView.ViewHolder(view) {
            };
        }
        case TYPE_CELL: {
            view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.list_item_card_small, parent, false);
            return new RecyclerView.ViewHolder(view) {
            };
        }
    }
    return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    switch (getItemViewType(position)) {
        case TYPE_HEADER:
            break;
        case TYPE_CELL:
            break;
    }
}
}

【问题讨论】:

  • 为什么不创建自定义 ViewHolder?
  • 我试过了,但似乎不是我的那杯茶,我们将不胜感激

标签: java android android-viewpager material-design adapter


【解决方案1】:

嗯, 如果您不想实现自定义 viewHolder,您可以在 onBindViewHolder(RecyclerView.ViewHolder holder, int position) 中执行类似操作:

holder.itemView.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v){
        //start which activity you want
    }
})

否则,您可以实现自定义 ViewHolder。这是一个指南: https://developer.android.com/guide/topics/ui/layout/recyclerview

【讨论】:

  • 感谢您的回答,我找到了自定义viewholder的出路
猜你喜欢
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多