您的位置:首页 > 其它

RecyclerView多布局加接口回调点击分享

2017-12-07 03:34 316 查看
package com.example.umshares;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;

/**
* Created by 吕楠 on 2017/12/7.
*/

public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private ArrayList<String> arr;
private final static int ITEM_ONE = 1;
private final static int ITEM_TOW = 2;
private Onclick mOnclick = null;
public Adapter(ArrayList<String> arr) {
this.arr = arr;
}
static interface Onclick{
void OnclickListener(int position);
}
public void setOnClickss(Onclick listener){
this.mOnclick = listener;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View view;
RecyclerView.ViewHolder holder = null;
if (ITEM_ONE  == viewType){
view = layoutInflater.inflate(R.layout.itemtow,parent,false);
holder = new HolderOne(view);
}else {
view = layoutInflater.inflate(R.layout.itemone,parent,false);
holder = new HolderTow(view);
}

return holder;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof HolderOne){
((HolderOne) holder).textView.setText(arr.get(position));
}else {
((HolderTow)holder).textView.setText(arr.get(position));
((HolderTow)holder).textView2.setText(arr.get(position));
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnclick.OnclickListener(position);
}
});
}

@Override
public int getItemViewType(int position) {
if (position % 2 == 0){
return ITEM_ONE;
}else {
return ITEM_TOW;
}
}
@Override
public int getItemCount() {
return arr.size();
}
class HolderOne extends RecyclerView.ViewHolder {
private TextView textView;
public HolderOne(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.adapter_linear_text);
}
}
class HolderTow extends RecyclerView.ViewHolder {
private TextView textView;
private TextView textView2;
public HolderTow(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.adapter_two_1);
textView2 = (TextView) itemView.findViewById(R.id.adapter_two_2);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: