http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2004.html [java] view plain copy [java] view plain copy package cardvalue.managementsystem.latestperson; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import butterknife.BindView; import butterknife.ButterKnife; import cardvalue.managementsystem.MyApplication; import cardvalue.managementsystem.R; import cardvalue.managementsystem.base.BaseFragment; import cardvalue.managementsystem.msg.MessageActivity; import cardvalue.managementsystem.pojo.BaseMessage; import cardvalue.managementsystem.pojo.CommandType; import cardvalue.managementsystem.pojo.LatestPersonMsg; import cardvalue.managementsystem.pojo.Result; import cardvalue.managementsystem.pojo.UserTable; import cardvalue.managementsystem.view.OnItemClickListener; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.util.List; import java.util.concurrent.ExecutionException; import timber.log.Timber; /** * 最近联系人 * Created by Administrator on 2017/7/11. */ public class LatestPersonFragment extends BaseFragment{ private LatestPersonAdapter mAdapter; @BindView(R.id.recyclerView) RecyclerView mRecyclerView; @Override public int initView() { return R.layout.fragment_latest_person;//我就是要返回的布局 } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view=inflater.inflate(initView(),null); ButterKnife.bind(this,view); mAdapter=new LatestPersonAdapter(); mRecyclerView.setLayoutManager(new LinearLayoutManager(view.getContext())); mRecyclerView.setAdapter(mAdapter); mAdapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { startActivity(new Intent(view.getContext(), MessageActivity.class)); } }); return view; } @Override public void onStart() { super.onStart(); UserTable userTable1= MyApplication.getInstance().getTasksLocalDataSource().getUserTable(); BaseMessage msg = new BaseMessage(); msg.setCmdType(CommandType.GetMessage.intValue()); msg.setFrom(userTable1.getId()); MyApplication.getInstance().getSendReceiveUtil().sendData(msg.toJson()); try { String receive= MyApplication.getInstance().getSendReceiveUtil().receiveData(); Gson gson=new Gson(); Result<LatestPersonMsg> latestPersonMsgResult=gson.fromJson(receive,Result.class); List<LatestPersonMsg> retList = gson.fromJson(latestPersonMsgResult.result, new TypeToken<List<LatestPersonMsg>>() { }.getType()); Timber.e("==========最近联系人======"+retList); Log.e("==最近联系人====",retList.get(0).getId()+"===="); mAdapter.updateData(retList); } catch (ExecutionException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } [java] view plain copy package cardvalue.managementsystem.latestperson; import android.net.Uri; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; import butterknife.BindView; import butterknife.ButterKnife; import cardvalue.managementsystem.R; import cardvalue.managementsystem.pojo.LatestPersonMsg; import cardvalue.managementsystem.view.OnItemClickListener; import com.facebook.drawee.view.SimpleDraweeView; import java.util.ArrayList; import java.util.List; import timber.log.Timber; /** * 最近联系人的adapter * Created by Administrator on 2017/7/12. */ public class LatestPersonAdapter extends RecyclerView.Adapter<LatestPersonAdapter.ViewHolder>{ List<LatestPersonMsg> mData = new ArrayList<>(); public OnItemClickListener onItemClickListener; @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_item_person,parent,false)); } @Override public void onBindViewHolder(ViewHolder holder, final int position) { Timber.e("===onBindViewHolder==="+mData.size()); holder.mTime.setText(mData.get(position).getSendDate()); holder.mMsgContent.setText(mData.get(position).getMsg()); holder.mName.setText(mData.get(position).getToName()); holder.mPic.setImageURI(Uri.parse("http://www.qqtn.com/viewimg_121878_1.html?http://pic.qqtn.com/up/2016-1/2016010609094866462.jpg")); /**item的点击事件*/ holder.mListItem.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(onItemClickListener!=null){ onItemClickListener.onItemClick(position); } } }); } @Override public int getItemCount() { return mData.size(); } static class ViewHolder extends RecyclerView.ViewHolder{ /** * 消息的内容 */ @BindView(R.id.tv_msg_content) TextView mMsgContent; /** * 发送消息的时间 */ @BindView(R.id.tv_time) TextView mTime; /** * 头像 */ @BindView(R.id.iv_pic) SimpleDraweeView mPic; @BindView(R.id.tv_name) TextView mName; @BindView(R.id.list_item) RelativeLayout mListItem; public ViewHolder(View itemView) { super(itemView); ButterKnife.bind(this,itemView); } } public void updateData(List<LatestPersonMsg> data){ mData.clear(); mData.addAll(data); notifyDataSetChanged(); } public void setOnItemClickListener( OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener; } } [java] view plain copy package com.cardvlaue.sys.confirm; 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.TextView; import com.cardvlaue.sys.R; import java.util.ArrayList; import java.util.List; import timber.log.Timber; /** * Created by Administrator on 2016/7/13. */ public class ConfirmAdapter extends RecyclerView.Adapter { public OnItemClickListenter onItemClickListenter; private List<ConfirmListItem> mlist = new ArrayList<>(); //private Context context; private LayoutInflater inflater; private String tag; public ConfirmAdapter(Context context, String tag) { this.tag = tag; // this.context = context; this.inflater = LayoutInflater.from(context); } public ConfirmAdapter(Context context, List<ConfirmListItem> mlist) { //this.context = context; this.mlist = mlist; this.inflater = LayoutInflater.from(context); } /** * 设置view,只做布局解析 */ @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_confirm, parent, false); return new ViewHolder(view); } /** * 设置数据 */ @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof ViewHolder) { ViewHolder viewHolder = (ViewHolder) holder; if (tag.equals("1") && (position == 2 || position == 8)) { viewHolder.asd.setVisibility(View.VISIBLE); } ConfirmListItem selHasLeaseContract = mlist.get(position); viewHolder.titile.setText(selHasLeaseContract.getTitle()); Timber.e(selHasLeaseContract.getId() + selHasLeaseContract.getTitle() + "设置数据"); } } /** * 设置adapter的条数 */ @Override public int getItemCount() { return mlist != null ? mlist.size() : 0; } public void setOnItemClickListenter(OnItemClickListenter onItemClickListenter) { this.onItemClickListenter = onItemClickListenter; } public void update(List<ConfirmListItem> list) { mlist.clear(); mlist.addAll(list); notifyDataSetChanged(); } /** * 对外暴露的点击事件接口 */ public interface OnItemClickListenter { void OnItemClick(View v, int position); } /** * viewHolder */ class ViewHolder extends RecyclerView.ViewHolder { TextView titile, value; View asd; //构造函数 public ViewHolder(final View itemView) { super(itemView); //初始化方法 inint(itemView); //点击事件 itemView.setOnClickListener(v -> { if (onItemClickListenter != null) { onItemClickListenter.OnItemClick(itemView, getLayoutPosition()); } }); } public void inint(View view) { titile = (TextView) view.findViewById(R.id.title); value = (TextView) view.findViewById(R.id.value); asd = view.findViewById(R.id.and); } } }
RecyclerView使用介绍
猜你喜欢
转载自blog.csdn.net/duanjie924/article/details/80227340
今日推荐
周排行