Guest User

Untitled

a guest
Jun 21st, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. public class CategoriesAdapter extends RecyclerView.Adapter<CategoriesAdapter.ViewHolder> {
  2.  
  3. private List<Category> categories;
  4. private Context ctx;
  5.  
  6. public CategoriesAdapter(List<Category> categories, Context ctx) {
  7. this.categories = categories;
  8. this.ctx = ctx;
  9. }
  10.  
  11. @Override
  12. public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  13. View v = LayoutInflater.from(parent.getContext())
  14. .inflate(R.layout.list_categories, parent, false);
  15. return new ViewHolder(v);
  16. }
  17.  
  18. @Override
  19. public void onBindViewHolder(CategoriesAdapter.ViewHolder holder, int position) {
  20. final Category category = categories.get(position);
  21. holder.textViewCategoryName.setText(category.getName());
  22. }
  23.  
  24. @Override
  25. public int getItemCount() {
  26. return categories.size();
  27. }
  28.  
  29.  
  30.  
  31.  
  32. public class ViewHolder extends RecyclerView.ViewHolder{
  33.  
  34. public TextView textViewCategoryName;
  35.  
  36. public ViewHolder(final View itemView) {
  37. super(itemView);
  38.  
  39. textViewCategoryName = (TextView) itemView.findViewById(R.id.textViewCategoryName);
  40. itemView.setOnClickListener(new View.OnClickListener() {
  41. @Override
  42. public void onClick(View v) {
  43. Fragment fragment = null;
  44. Category category =(Category) categories.get(getAdapterPosition());
  45.  
  46. switch (category.getName()){
  47. case "Смартфон":
  48. fragment = new SearchSmartphoneFragment();
  49. break;
  50. case "Планшет":
  51. break;
  52. }
  53. if (fragment != null) {
  54. FragmentManager fragmentManager = getFragmentManager();
  55. FragmentTransaction ft = fragmentManager.beginTransaction();
  56. ft.replace(R.id.content_frame,fragment);
  57. ft.commit();
  58. }
  59.  
  60.  
  61. }
  62. });
  63.  
  64. }
  65. }
  66. }
  67.  
  68. FragmentManager fragmentManager = ((Activity) itemView.getContext()).getFragmentManager();
  69.  
  70. interface ClickToProfile {
  71. fun openProfile(user: User)
  72. }
  73.  
  74.  
  75. class PeopleAdapter(context: Context, private var items: MutableList<User>, private var clickToProfile: ClickToProfile) :
  76. RecyclerView.Adapter<PeopleViewHolderItem>() {
  77.  
  78. private val inflater: LayoutInflater = LayoutInflater.from(context)
  79.  
  80. override fun onBindViewHolder(viewHolder: PeopleViewHolderItem, position: Int) {
  81. viewHolder.bindTo(items[position])
  82. }
  83.  
  84. override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): PeopleViewHolderItem {
  85. return PeopleViewHolderItem.create(inflater, viewGroup, clickToProfile)
  86. }
  87.  
  88. override fun getItemCount(): Int {
  89. return items.size
  90. }
  91. }
  92.  
  93. private fun setupRecyclerView(users: ArrayList<User>) {
  94. adapter = PeopleAdapter(context!!, users, object : ClickToProfile {
  95. override fun openProfile(user: User) {
  96. adapter.notifyDataSetChanged()
  97. listener?.replaceFragment(ProfileFragment.newInstance(user), true)
  98. }
  99. })
  100. recyclerView.adapter = adapter
  101. }
  102.  
  103. class PeopleViewHolderItem private constructor(view: View,
  104. private val clickToProfile: ClickToProfile) : RecyclerView.ViewHolder(view) {
  105. private val itemHuman = view.itemPeople
  106. @SuppressLint("SetTextI18n")
  107. fun bindTo(user: User) {
  108. // listener
  109. itemHuman.setOnClickListener { selectAndOpen(user) }
  110. itemHuman.moreBtn.setOnClickListener { selectAndOpen(user) }
  111. }
  112.  
  113. private fun selectAndOpen(user: User) {
  114. clickToProfile.openProfile(user)
  115. selectedPosition = layoutPosition
  116. }
  117.  
  118. companion object {
  119. var selectedPosition = -1
  120. fun create(inflater: LayoutInflater,
  121. parent: ViewGroup, clickToProfile: ClickToProfile): PeopleViewHolderItem {
  122. return PeopleViewHolderItem(inflater.inflate(R.layout.item_people, parent, false), clickToProfile)
  123. }
  124. }
  125. }
Add Comment
Please, Sign In to add comment