EventArrayAdapter.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.example.yiupang.freefoodfinder;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.support.annotation.NonNull;
  5. //CODE SMELL: unused import
  6. import android.support.v7.widget.RecyclerView;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.widget.ArrayAdapter;
  11. import android.widget.TextView;
  12. import java.util.List;
  13. /**
  14. * Created by yiupang on 5/20/2017.
  15. *
  16. */
  17. public class EventArrayAdapter extends ArrayAdapter<Event>
  18. {
  19. private class ViewHolder{
  20. TextView name;
  21. TextView type;
  22. TextView desc;
  23. }
  24. private Context context;
  25. List<Event> events;
  26. // CODE SMELL: unused private field
  27. private int layoutResourceId;
  28. public EventArrayAdapter(Context context, int layoutResourceId, List<Event> events)
  29. {
  30. super(context, layoutResourceId, events);
  31. this.context = context;
  32. this.layoutResourceId = layoutResourceId;
  33. this.events = events;
  34. }
  35. @Override
  36. public long getItemId(int position){return events.indexOf(position);}
  37. @Override
  38. public int getCount(){
  39. return events.size();
  40. }
  41. @NonNull
  42. @Override
  43. public View getView(int position, View convertView, ViewGroup parent)
  44. {
  45. ViewHolder holder;
  46. LayoutInflater inflater = ((Activity) context).getLayoutInflater();
  47. View newConvertView = convertView;
  48. if(newConvertView == null) {
  49. newConvertView = inflater.inflate(R.layout.events_list_item, parent, false);
  50. holder = new ViewHolder();
  51. holder.name = (TextView) newConvertView.findViewById(R.id.name);
  52. holder.type = (TextView) newConvertView.findViewById(R.id.type);
  53. holder.desc = (TextView) newConvertView.findViewById(R.id.desc);
  54. Event rowPos = events.get(position);
  55. holder.name.setText(rowPos.getName());
  56. holder.type.setText(rowPos.getFoodType());
  57. holder.desc.setText(rowPos.getDescription());
  58. newConvertView.setTag(holder);
  59. } else {
  60. // CODE SMELL AND BUG: Useless Assignment
  61. holder = (ViewHolder) newConvertView.getTag();
  62. }
  63. return newConvertView;
  64. }
  65. }