CustomAdapter.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.noahvogt.miniprojekt.ui.home;
  2. import android.content.Context;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.Button;
  7. import android.widget.TextView;
  8. import androidx.recyclerview.widget.RecyclerView;
  9. import com.noahvogt.miniprojekt.R;
  10. import java.util.List;
  11. public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
  12. private List<Data> localDataSet;
  13. /**
  14. * Provide a reference to the type of views that you are using
  15. * (custom ViewHolder).
  16. */
  17. public class ViewHolder extends RecyclerView.ViewHolder {
  18. private TextView textView;
  19. private Button messageButton;
  20. public ViewHolder(View view) {
  21. super(view);
  22. // Define click listener for the ViewHolder's View
  23. textView = (TextView) view.findViewById(R.id.textView);
  24. messageButton = (Button) itemView.findViewById(R.id.message_button);
  25. }
  26. //public TextView getTextView() {
  27. //return textView;
  28. //}
  29. }
  30. /**
  31. * Initialize the dataset of the Adapter.
  32. *
  33. * @param dataSet String[] containing the data to populate views to be used
  34. * by RecyclerView.
  35. */
  36. public CustomAdapter(List<Data> dataSet) {
  37. localDataSet = dataSet;
  38. }
  39. // Create new views (invoked by the layout manager)
  40. @Override
  41. public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
  42. // Create a new view, which defines the UI of the list item
  43. //View view = LayoutInflater.from(viewGroup.getContext())
  44. //.inflate(R.layout.text_row_item, viewGroup, false);
  45. Context context = viewGroup.getContext();
  46. LayoutInflater inflater = LayoutInflater.from(context);
  47. // Inflate the custom layout
  48. View contactView = inflater.inflate(R.layout.fragment_home, viewGroup, false); //fragment_home is just for no errors idk if it is the right file
  49. // Return a new holder instance
  50. ViewHolder view = new ViewHolder(contactView);
  51. return view;
  52. }
  53. // Replace the contents of a view (invoked by the layout manager)
  54. @Override
  55. public void onBindViewHolder(ViewHolder viewHolder, int position) {
  56. // Get element from your dataset at this position and replace the
  57. // contents of the view with that element
  58. //viewHolder.getTextView().setText(localDataSet[position]);
  59. // Get the data model based on position
  60. Data contact = localDataSet.get(position);
  61. // Set item views based on your views and data model
  62. TextView textView = viewHolder.textView;
  63. textView.setText(contact.getName());
  64. Button button = viewHolder.messageButton;
  65. button.setText(contact.isOnline() ? "Message" : "Offline");
  66. button.setEnabled(contact.isOnline());
  67. }
  68. // Return the size of your dataset (invoked by the layout manager)
  69. @Override
  70. public int getItemCount() {
  71. return localDataSet.size();
  72. }
  73. }