Guest User

Untitled

a guest
Nov 25th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.11 KB | None | 0 0
  1. `public class MessageAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  2.  
  3. Context context;
  4. private List<Object> items;
  5. public static final int TYPE_MSG_HEADER= 0;
  6. public static final int TYPE_MSG_INCOMING = 1;
  7. public static final int TYPE_MSG_OUTGOING = 2;
  8. public static final int TYPE_MSG_NEARBY_LIST =3;
  9. RecyclerView.Adapter horizontalAdapater;
  10.  
  11.  
  12. public MessageAdapter(Context context,List<Object> items) {
  13. this.context=context;
  14. this.items = items;
  15.  
  16.  
  17. }
  18.  
  19. @Override
  20. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType)
  21. {
  22.  
  23. RecyclerView.ViewHolder viewHolder=null;
  24. LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
  25. View view;
  26.  
  27. switch (viewType)
  28. {
  29. case TYPE_MSG_HEADER:
  30. view = inflater.inflate(R.layout.msg_header, viewGroup, false);
  31. viewHolder = new ViewHolder1(view);
  32. break;
  33. case TYPE_MSG_INCOMING:
  34. view = inflater.inflate(R.layout.st_get_msg_left, viewGroup, false);
  35. viewHolder = new ViewHolder2(view);
  36. break;
  37. case TYPE_MSG_OUTGOING:
  38. view = inflater.inflate(R.layout.st_get_msg_right, viewGroup, false);
  39. viewHolder = new ViewHolder3(view);
  40. break;
  41. case TYPE_MSG_NEARBY_LIST:
  42. view= inflater.inflate(R.layout.near_resturant_albym, viewGroup, false);
  43. viewHolder = new ViewHolder4(view);
  44. break;
  45. }
  46. return viewHolder;
  47. }
  48.  
  49.  
  50. @Override
  51. public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
  52.  
  53.  
  54.  
  55. switch (viewHolder.getItemViewType())
  56. {
  57. case TYPE_MSG_HEADER:
  58. ViewHolder1 vh1 = (ViewHolder1) viewHolder;
  59. configureViewHolder1(vh1, position);
  60. break;
  61. case TYPE_MSG_INCOMING:
  62. ViewHolder2 vh2 = (ViewHolder2) viewHolder;
  63. configureViewHolder2(vh2, position);
  64. break;
  65. case TYPE_MSG_OUTGOING:
  66. ViewHolder3 vh3 = (ViewHolder3) viewHolder;
  67. configureViewHolder3(vh3, position);
  68. break;
  69. case TYPE_MSG_NEARBY_LIST:
  70. ViewHolder4 vh4 = (ViewHolder4) viewHolder;
  71. configureViewHolder4(vh4, position);
  72. break;
  73. }
  74.  
  75.  
  76. }
  77. private void configureViewHolder1(ViewHolder1 vh1, int position) {
  78.  
  79. }
  80. private void configureViewHolder2(ViewHolder2 vh2, int position) {
  81. MsgIncomingDetails user = (MsgIncomingDetails) items.get(position);
  82. if (user != null) {
  83. vh2.setImage(user.getPic_url());
  84. vh2.setSubmsg(user.getSub_msg());
  85. }
  86. }
  87. private void configureViewHolder3(ViewHolder3 vh3, int position) {
  88. MsgOutgoingDetails user = (MsgOutgoingDetails) items.get(position);
  89. if (user != null) {
  90. vh3.setSubmsg(user.getSub_msg());
  91. }
  92. }
  93. private void configureViewHolder4(ViewHolder4 vh4,final int position)
  94. {
  95. SugectionList sugectionList=(SugectionList)items.get(position) ;
  96. horizontalAdapater =new HorizontalAdapter(context,sugectionList.getNearByListDetailsList());
  97.  
  98. vh4.recycler_view_list.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false));
  99. vh4.recycler_view_list.setAdapter(horizontalAdapater);
  100. vh4.recycler_view_list.setHasFixedSize(true);
  101. //adapater.notifyDataSetChanged();
  102. //notifyItemInserted(position);
  103. vh4.recycler_view_list.addOnItemTouchListener(new RecyclerItemClickListener(context, new RecyclerItemClickListener.OnItemClickListener() {
  104. @Override
  105. public void onItemClick(View v, int pos)
  106. {
  107.  
  108. NearByListDetails list=((SugectionList) items.get(position)).getNearByListDetailsList().get(pos);
  109. Intent intent=new Intent(context, CardDetailScreen.class);
  110. Bundle b = new Bundle();
  111. b.putSerializable("nearlist", list);
  112. intent.putExtras(b);
  113. context.startActivity(intent);
  114. }
  115. })
  116. );
  117.  
  118. }
  119.  
  120.  
  121. @Override
  122. public int getItemCount() {
  123. return items.size();
  124. }
  125.  
  126. @Override
  127. public int getItemViewType(int position) {
  128. if (items.get(position) instanceof MsgIncomingDetails) {
  129. return TYPE_MSG_INCOMING;
  130. }
  131. else if (items.get(position) instanceof MsgOutgoingDetails) {
  132. return TYPE_MSG_OUTGOING;
  133. }
  134. else if (items.get(position) instanceof MsgHeaderDetails) {
  135. return TYPE_MSG_HEADER;
  136. }
  137. else if (items.get(position) instanceof SugectionList) {
  138. return TYPE_MSG_NEARBY_LIST;
  139. }
  140. return -1;
  141.  
  142. }
  143.  
  144.  
  145. public class ViewHolder1 extends RecyclerView.ViewHolder {
  146.  
  147. public ViewHolder1(View itemView) {
  148. super(itemView);
  149.  
  150.  
  151. }
  152.  
  153.  
  154. }
  155.  
  156. public class ViewHolder2 extends RecyclerView.ViewHolder
  157. {
  158.  
  159. AppCompatImageView imgView;
  160. TextView txtLastMsg;
  161.  
  162. public ViewHolder2(View itemView) {
  163. super(itemView);
  164.  
  165.  
  166. txtLastMsg = (TextView) itemView.findViewById(R.id.txtLastMsgRecvd);
  167. imgView = (AppCompatImageView) itemView.findViewById(R.id.imgvProfPic);
  168. }
  169.  
  170. public void setSubmsg(String submsg)
  171. {
  172. if (null == txtLastMsg) return;
  173. txtLastMsg.setText(submsg);
  174. }
  175.  
  176. public void setImage(String img_url)
  177. {
  178. if (null == imgView) return;
  179. if(img_url!=null && !(img_url.equals("")))
  180. {
  181. Picasso.with(context).load(img_url).into(imgView);
  182. }
  183. else
  184. {
  185. Picasso.with(context).load(R.drawable.betty_icon).into(imgView);
  186.  
  187. }
  188.  
  189. }
  190. }
  191.  
  192. public class ViewHolder3 extends RecyclerView.ViewHolder {
  193.  
  194.  
  195. TextView txtLastMsg;
  196. public ViewHolder3(View itemView)
  197. {
  198. super(itemView);
  199. txtLastMsg = (TextView) itemView.findViewById(R.id.txtLastMsgRecvd);
  200.  
  201. }
  202.  
  203. public void setSubmsg(String submsg)
  204. {
  205. if (null == txtLastMsg) return;
  206. txtLastMsg.setText(submsg);
  207. }
  208. }
  209.  
  210. public class ViewHolder4 extends RecyclerView.ViewHolder {
  211.  
  212.  
  213. public RecyclerView recycler_view_list;
  214.  
  215. public ViewHolder4(View itemView)
  216. {
  217. super(itemView);
  218. recycler_view_list=(RecyclerView)itemView.findViewById(R.id.recyclerViewNearByRest);
  219. }
  220.  
  221. }
  222.  
  223. }`
  224.  
  225. `public class HorizontalAdapter extends RecyclerView.Adapter<HorizontalAdapter.MyViewHolder> {
  226.  
  227. private Context mContext;
  228. private List<NearByListDetails> albumList;
  229. CustomItemClickListener listener;
  230.  
  231. public class MyViewHolder extends RecyclerView.ViewHolder {
  232. public TextView txtTitle,txtAddress,txtPrice,txtRate,txtRatelbl;
  233. public ImageView thumbnail;
  234.  
  235. public MyViewHolder(View view) {
  236. super(view);
  237. txtTitle = (TextView) view.findViewById(R.id.title);
  238. txtAddress = (TextView) view.findViewById(R.id.txtAddress);
  239. txtPrice = (TextView) view.findViewById(R.id.txtPrice);
  240. txtRatelbl= (TextView) view.findViewById(R.id.txtRatelbl);
  241. txtRate = (TextView) view.findViewById(R.id.txtRate);
  242. thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
  243.  
  244. }
  245. }
  246.  
  247.  
  248. public HorizontalAdapter(Context mContext, List<NearByListDetails> albumList) {
  249. this.mContext = mContext;
  250. this.albumList = albumList;
  251. //this.listener=listener;
  252. }
  253.  
  254. @Override
  255. public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  256. View mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.album_card, parent, false);
  257. final MyViewHolder mViewHolder = new MyViewHolder(mView);
  258. mView.setOnClickListener(new View.OnClickListener() {
  259. @Override
  260. public void onClick(View v) {
  261. try
  262. {
  263. listener.onItemClick(v, mViewHolder.getPosition());
  264. }
  265. catch (Exception e)
  266. {
  267. e.printStackTrace();
  268. }
  269.  
  270. }
  271. });
  272. return mViewHolder;
  273. }
  274.  
  275. @Override
  276. public void onBindViewHolder(final MyViewHolder holder, int position) {
  277. NearByListDetails album = albumList.get(position);
  278. holder.txtTitle.setText(album.getTitle());
  279. holder.txtAddress.setText(album.getAddress());
  280. holder.txtPrice.setText(album.getPrice());
  281. holder.txtRate.setText(album.getRate());
  282. // loading album cover using Picasso library
  283. if((album.getImage_url()!=null )&& !(album.getImage_url().equals("")))
  284. Picasso.with(mContext).load(album.getImage_url()).into(holder.thumbnail);
  285. }
  286.  
  287.  
  288.  
  289.  
  290. @Override
  291. public int getItemCount() {
  292. return albumList.size();
  293. }
  294. }
  295. `
Add Comment
Please, Sign In to add comment