Java 如何在Materialviewpage适配器中添加onClickListener?
我正在使用来自github的库:。我希望不同的卡视图打开不同的活动。我怎样才能做到呢 我在那里找不到任何解决方案 testRecycleServiceAdapter.javaJava 如何在Materialviewpage适配器中添加onClickListener?,java,android,android-viewpager,material-design,adapter,Java,Android,Android Viewpager,Material Design,Adapter,我正在使用来自github的库:。我希望不同的卡视图打开不同的活动。我怎样才能做到呢 我在那里找不到任何解决方案 testRecycleServiceAdapter.java public class TestRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { List<Object> contents; static final int TYPE_HEADER =
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;
}
}
}
公共类TestRecycleServiceAdapter扩展
RecyclerView.适配器{
列出内容;
静态最终整数类型_头=0;
静态最终整数类型\单元=1;
公共TestRecycleServiceAdapter(列出内容){
this.contents=目录;
}
@凌驾
public int getItemViewType(int位置){
开关(位置){
案例0:
返回类型_头;
违约:
返回式单元;
}
}
@凌驾
public int getItemCount(){
返回contents.size();
}
@凌驾
public RecyclerView.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图=空;
开关(视图类型){
案例类型_标题:{
view=LayoutInflater.from(parent.getContext())
.充气(R.layout.list\u item\u card\u big,parent,false);
返回新的RecyclerView.ViewHolder(视图){
};
}
案例类型\单元:{
view=LayoutInflater.from(parent.getContext())
.充气(R.layout.list\u item\u card\u small,parent,false);
返回新的RecyclerView.ViewHolder(视图){
};
}
}
返回null;
}
@凌驾
BindViewHolder上的公共无效(RecyclerView.ViewHolder,int位置){
开关(getItemViewType(位置)){
案例类型_标题:
打破
案例类型\单元:
打破
}
}
}
嗯,
如果不想实现自定义viewHolder,可以在onBindViewHolder(RecyclerView.viewHolder,int位置)
中执行类似操作:
否则,您可以实现自定义的ViewHolder。以下是指南:
您为什么不创建自定义视图夹?我尝试过,但似乎不是我喜欢的,我们将感谢您的帮助谢谢您的回答,我找到了使用自定义视图夹的方法
holder.itemView.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
//start which activity you want
}
})