Simple Android RecyclerView example

前端 未结 11 1544
名媛妹妹
名媛妹妹 2020-11-22 02:03

I\'ve made a list of items a few times using Android\'s RecyclerView, but it is a rather complicated process. Going through one of the numerous tutorials online

11条回答
  •  南方客
    南方客 (楼主)
    2020-11-22 02:52

    This will be the simplest version of the implementation of RecyclerView.

    activity_main.xml

    
    
    
        
    
    
    

    list_item_view.xml

    
    
    
        
    
    
    

    CustomAdapter.java

    public class CustomAdapter extends RecyclerView.Adapter {
      private List data;
      public CustomAdapter (List data){
        this.data = data;
      }
    
      @Override
      public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View rowItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_view, parent, false);
        return new ViewHolder(rowItem);
      }
    
      @Override
      public void onBindViewHolder(CustomAdapter.ViewHolder holder, int position) {
        holder.textView.setText(this.data.get(position));
      }
    
      @Override
      public int getItemCount() {
        return this.data.size();
      }
    
      public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private TextView textView;
    
        public ViewHolder(View view) {
          super(view);
          view.setOnClickListener(this);
          this.textView = view.findViewById(R.id.textview);
        }
    
        @Override
        public void onClick(View view) {
          Toast.makeText(view.getContext(), "position : " + getLayoutPosition() + " text : " + this.textView.getText(), Toast.LENGTH_SHORT).show();
        }
      }
    }
    

    MainActivity.java

    public class MainActivity extends AppCompatActivity {
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        RecyclerView recyclerView = findViewById(R.id.recycler_view);
        
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setAdapter(new CustomAdapter(generateData()));
        recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
      }
    
      private List generateData() {
        List data = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
          data.add(String.valueOf(i) + "th Element");
        }
        return data;
      }
    
    }
    

提交回复
热议问题