reyclerView的item点击刷新

来源:互联网 发布:视频剪辑软件格式工厂 编辑:程序博客网 时间:2024/06/07 09:09

这里写图片描述
xml

<LinearLayout    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/user_selector_item_default"    android:orientation="horizontal"    android:padding="15dp">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="油品"        android:maxEms="4"        android:layout_marginRight="10dp"        android:textSize="14sp"/>    <android.support.v7.widget.RecyclerView        android:id="@+id/rv_gas"        android:layout_width="match_parent"        android:layout_height="wrap_content"        tools:listitem="@layout/item_gas"/></LinearLayout>

adapter

public class GasTypeAdapter extends RecyclerView.Adapter<GasTypeAdapter.GasTypeHolder> {    private static final int LAYOUT_ID = R.layout.item_gas;    public List<String> dataList;    private Context context;    public GasTypeAdapter(OnItemClickListener onItemClickListener) {        this.onItemClickListener = onItemClickListener;        dataList = new ArrayList<>();    }    public OnItemClickListener onItemClickListener;    @Override    public GasTypeHolder onCreateViewHolder(ViewGroup parent, int viewType) {        context = parent.getContext();        View rootView = View.inflate(context, LAYOUT_ID, null);        return new GasTypeHolder(rootView);    }    @Override    public void onBindViewHolder(GasTypeHolder holder, int position) {        holder.setData(context, dataList.get(position), position);    }    @Override    public int getItemCount() {        return dataList.size();    }    public void addAll(List<String> dataList) {        this.dataList.addAll(dataList);        notifyDataSetChanged();    }    public void clear() {        this.dataList.clear();        notifyDataSetChanged();    }    public List<String> getAll() {        return this.dataList;    }    public void notifyDataChange(int position){        clearSelection(position);        notifyDataSetChanged();    }    private int selectedPos = 0;    public void clearSelection(int pos) {        selectedPos = pos;    }    class GasTypeHolder extends RecyclerView.ViewHolder {        private TextView tv_type;        private View.OnClickListener onClickListener = new View.OnClickListener() {            @Override            public void onClick(View view) {                if(onItemClickListener != null){                    notifyDataChange(getAdapterPosition());                    onItemClickListener.onItemClickListener(view,getAdapterPosition());                }            }        };        public GasTypeHolder(View itemView) {            super(itemView);            itemView.setOnClickListener(onClickListener);            tv_type = (TextView) itemView.findViewById(R.id.tv_type);        }        public void setData(final Context context, final String str, int position) {            if (str == null) {                return;            }            if (selectedPos == position) {                tv_type.setSelected(true);            }else{                tv_type.setSelected(false);            }            tv_type.setText(str);        }    }}

activity

    private RecyclerView rvGas;    private GasTypeAdapter gasTypeAdapter;    rvGas = (RecyclerView) findViewById(R.id.rv_gas);    rvGas.setLayoutManager(new GridLayoutManager(this, 3));    rvGas.setNestedScrollingEnabled(false);    gasTypeAdapter = new GasTypeAdapter(onItemClickListener);    rvGas.setAdapter(gasTypeAdapter);    List<String> dataList = new ArrayList<>();    dataList.add("92#");    dataList.add("93#");    dataList.add("95#");    dataList.add("98#");    dataList.add("0#");    gasTypeAdapter.addAll(dataList);    private OnItemClickListener onItemClickListener = new OnItemClickListener() {    @Override    public void onItemClickListener(View view, int position) {        //油品    }};
0 0