Recyclerview添加条目点击事件

package com.mine.project.function.adapter;

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

import com.mine.project.R;
import com.mine.project.function.domain.ComplainInfo;
import com.mine.project.network.utils.MyDateUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by wy on 2017/7/11.
 */

public class PadComplainAdapter extends RecyclerView.Adapter<PadComplainAdapter.ViewHolder> implements  View.OnClickListener{
    private List<ComplainInfo> objects = new ArrayList<ComplainInfo>();
    private Context context;
    private LayoutInflater layoutInflater;
    private OnItemClickListener mOnItemClickListener;
    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        mOnItemClickListener = onItemClickListener;
    }
    public PadComplainAdapter(Context context, List<ComplainInfo> objects) {
        super();
        this.context = context;
        this.layoutInflater = LayoutInflater.from(context);
        this.objects = objects;
    }

    public ComplainInfo getItem(int position) {
        return objects.get(position);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.item_pad_complain, parent, false);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        initializeViews((ComplainInfo) getItem(position), holder);

    }

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


    private void initializeViews(ComplainInfo object, ViewHolder holder) {
        //TODO implement
        holder.mLlComplainItem.setOnClickListener(this);
        String mCommentTime= new MyDateUtil().change(object.getComplainTime());
        holder.tvPadComplainTime.setText(mCommentTime);
        holder.tvComplaintName.setText(object.getComplaintName());
//        holder.totalPrice.setText(object.getComplainTime() + "");
        holder.tvPadComplainContent.setText(object.getComplaintContent());
        holder.mLlComplainItem.setTag(holder);

    }

    @Override
    public void onClick(View v) {
        if (mOnItemClickListener == null) {
            return;
        }
        ViewHolder holder=(ViewHolder) v.getTag();
        mOnItemClickListener.onClick(holder,v, holder.getLayoutPosition() );
    }


    public class ViewHolder extends RecyclerView.ViewHolder {
        private TextView tvPadComplainTime;
        private TextView tvComplaintName;
        private TextView totalPrice;
        private TextView tvPadComplainContent;
        private LinearLayout mLlComplainItem;



        public ViewHolder(View view) {
            super(view);
            tvPadComplainTime = (TextView) view.findViewById(R.id.tv_padComplainTime);
            tvComplaintName = (TextView) view.findViewById(R.id.tv_complaintName);
            totalPrice = (TextView) view.findViewById(R.id.totalPrice);
            tvPadComplainContent = (TextView) view.findViewById(R.id.tv_padComplainContent);
            mLlComplainItem = (LinearLayout) view.findViewById(R.id.ll_complain_item);


        }
    }
    public interface OnItemClickListener {
        public void onClick(ViewHolder holder,View view, int position);
    }

}

package com.mine.project.function.home;


import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.mine.project.R;
import com.mine.project.flowlibrary.FlowTagLayout;
import com.mine.project.flowlibrary.OnTagSelectListener;
import com.mine.project.function.adapter.PadComplainAdapter;
import com.mine.project.function.adapter.PadGradeAdpter;
import com.mine.project.function.adapter.TagAdapter;
import com.mine.project.function.domain.CommentInfo;
import com.mine.project.function.domain.ComplainInfo;
import com.mine.project.function.domain.PageInfo;
import com.mine.project.home.ui.BaseFragment;
import com.mine.project.network.control.NetWorkListener;

import java.util.ArrayList;
import java.util.List;


/**
 * A simple {@link Fragment} subclass.
 */
public class TabLayoutFragment extends BaseFragment {

    public static String TABLAYOUT_FRAGMENT = "tab_fragment";
    private TextView mTextView;
    private int type;
    private ListView mLvShopGrade;
    private LinearLayout mLlShapgrade;
    private ListView mLvShopgrade;
    private RecyclerView mRv;
    List<String> mData;
    private FlowTagLayout mGradeFlowTagLayout;
    private CheckBox mChCommentShopgrade;
    private TagAdapter<String> mGradeTagAdapter;
    private FragmentManager manager;
    private FragmentTransaction transaction;
    private String padGradeTime;
    private int star1;
    private int star2;
    private int star3;
    private int star4;
    private int star5;
    private PadComplainAdapter mPadComplainAdapter;


    public static TabLayoutFragment newInstance(int type) {
        TabLayoutFragment fragment = new TabLayoutFragment();
        Bundle bundle = new Bundle();
        bundle.putSerializable(TABLAYOUT_FRAGMENT, type);
        fragment.setArguments(bundle);

        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (getArguments() != null) {
            type = (int) getArguments().getSerializable(TABLAYOUT_FRAGMENT);
        }

    }


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_tab_layout, container, false);
        initView(view);
        initData();
        initSizeData();
        return view;
    }

    private void initData() {
        mChCommentShopgrade.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    PadGrade(null, true);
                    Toast.makeText(getActivity(), "只看有内容评论", Toast.LENGTH_SHORT).show();
                } else {
                    PadGrade(null, false);
                    Toast.makeText(getActivity(), "查看全部评论", Toast.LENGTH_SHORT).show();
                }


            }
        });


    }

    protected void initView(View view) {
        mChCommentShopgrade = (CheckBox) view.findViewById(R.id.ch_comment_shopgrade);
        mGradeFlowTagLayout = (FlowTagLayout) view.findViewById(R.id.size_flow_layout);
        mRv = (RecyclerView) view.findViewById(R.id.rv);
//        mLvShopgrade = (ListView)view.findViewById(R.id.lv_shopgrade);
        mLlShapgrade = (LinearLayout) view.findViewById(R.id.ll_shapgrade);

        switch (type) {
            case 1:
                //flase显示所有评论,默认显示所有评论
                PadGrade(null, false);
                break;
            case 2:
                netWorkHelper.obtainStoreScoreComplain(mContext, 1, new NetWorkListener.ObtainStoreScoreComplainListener() {
                    @Override
                    public void onFinish(ArrayList<ComplainInfo> list, PageInfo pageInfo) {
                        mRv.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
                        mRv.setItemAnimator(new DefaultItemAnimator());
                        mPadComplainAdapter= new PadComplainAdapter(mContext, list);
                        mRv.setAdapter(mPadComplainAdapter);
                        mPadComplainAdapter.setOnItemClickListener(new PadComplainAdapter.OnItemClickListener() {
                            @Override
                            public void onClick(PadComplainAdapter.ViewHolder holder, View view, int position) {
                                Toast.makeText(mContext, "点到了  " + position , Toast.LENGTH_SHORT).show();
                            }
                        });


                    }

                    @Override
                    public void onError(String errorDesc) {
                        Toast.makeText(mContext, "联网失败", Toast.LENGTH_SHORT).show();
                    }
                });

                mLlShapgrade.setVisibility(View.GONE);
                break;

        }


    }


    private void initSizeData() {
        //评价动态标签流式布局显示
        mGradeTagAdapter = new TagAdapter<>(getActivity());
        mGradeFlowTagLayout.setTagCheckedMode(FlowTagLayout.FLOW_TAG_CHECKED_SINGLE);
        mGradeFlowTagLayout.setAdapter(mGradeTagAdapter);
        mGradeFlowTagLayout.setOnTagSelectListener(new OnTagSelectListener() {
            @Override
            public void onItemSelect(FlowTagLayout parent, List<Integer> selectedList) {
                if (selectedList != null && selectedList.size() > 0) {
                    StringBuilder sb = new StringBuilder();
                    for (int i : selectedList) {
                        PadGrade(i + 1 + "", false);
//                        sb.append(parent.getAdapter().getItem(i));
//                        sb.append(":");
                    }
//                    Toast.makeText(getActivity(), sb.toString(), Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getActivity(), "没有选择标签", Toast.LENGTH_SHORT).show();
                    PadGrade(null, false);

                }
            }
        });
        netWorkHelper.obtainStoreScoreInfoComment(mContext, new NetWorkListener.ObtainStoreScoreInfoCommentListener() {
            @Override
            public void onFinish(int score, int pointCount, int starFive, int starFour, int starThree, int starTwo, int starOne) {
                star1 = starOne;
                star2 = starTwo;
                star3 = starThree;
                star4 = starFour;
                star5 = starFive;
                List<String> dataSource1 = new ArrayList<>();
                dataSource1.add("1星评价" + "\n" + "      " + star1);
                dataSource1.add("2星评价" + "\n" + "      " + star2);
                dataSource1.add("3星评价" + "\n" + "      " + star3);
                dataSource1.add("4星评价" + "\n" + "      " + star4);
                dataSource1.add("5星评价" + "\n" + "      " + star5);

                mGradeTagAdapter.onlyAddAll(dataSource1);
            }

            @Override
            public void onError(String errorDesc) {
                Toast.makeText(mContext, "网络错误", Toast.LENGTH_SHORT).show();
            }
        });
//        List<StarEntity> dataSource = new ArrayList<>();
//        StarEntity mStarEntity1 = new StarEntity("1星评价",1);
//        dataSource.add(mStarEntity1);
    }

    private void PadGrade(String mLevel, boolean isShowNoComment) {
        netWorkHelper.obtainStoreScoreComment(mContext, mLevel, 1, isShowNoComment, new NetWorkListener.ObtainStoreScoreCommentListener() {
            @Override
            public void onFinish(ArrayList<CommentInfo> list, PageInfo pageInfo) {
//              mLvShopgrade.setAdapter(new ItemPadgradeAdapter(mContext,list));
                mRv.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
                mRv.setItemAnimator(new DefaultItemAnimator());
                mRv.setAdapter(new PadGradeAdpter(mContext, list));

            }

            @Override
            public void onError(String errorDesc) {
                Toast.makeText(mContext, "网络错误", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值