Android学习第二天

Android学习第二天

  • recyclerView的学习 (和iOSUITableView控制作用类似,都是展示很多数据的列表)

  • 引入recyclerView

    • build.gradle文件中引入该类。

      api 'com.android.support:recyclerview-v7:28.0.0'

  • activity的布局文件中 activity_main

      
      
          
          
      
    
  • 在activity中

     /*
        * 初始化数据
        * */
        private void initData(){
            myAdapter = new MyAdapter(getData());
        }
        /*
         * 初始化界面
         * */
        private void initView(){
            recyclerView  = (RecyclerView) findViewById(R.id.my_recycler_view);
            LinearLayoutManager mlayouotManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
            recyclerView.setLayoutManager(mlayouotManager);
            recyclerView.setAdapter(myAdapter);
        }
    
        /*
        *
        * 获取数据
        * */
        private ArrayList getData(){
            ArrayList data = new ArrayList<>();
            String temp = "item";
            for (int i = 0; i < 20; i++){
                data.add(i + temp);
            }
            return data;
        }
    
  • 声明一个适配器

    • 新建一个适配器类,叫MyAdapter.java

      package com.example.songhongkang.recyclerview;
      
      import android.support.annotation.NonNull;
      import android.support.v7.widget.RecyclerView;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.TextView;
      
      import java.util.ArrayList;
      
      public class MyAdapter extends RecyclerView.Adapter {
      
          private ArrayList mData;
      
          public MyAdapter(ArrayList data){
              this.mData = data;
          }
      
          @NonNull
          @Override
          public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
      
              // 实例化展示的view
              View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_rv_item, viewGroup, false);
              // 实例化viewholder
              ViewHolder viewHolder = new ViewHolder(v);
              return viewHolder;
      
          }
      
          @Override
          public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
                  viewHolder.et.setText(mData.get(i));
          }
      
      
          @Override
          public int getItemCount() {
              return mData == null ?  0 : mData.size();
          }
      
          public static class ViewHolder extends RecyclerView.ViewHolder {
              TextView et;
              public ViewHolder(@NonNull View itemView) {
                  super(itemView);
                 et = (TextView)itemView.findViewById(R.id.item_tv);
              }
          }
      }
      

运行的结果如下
Android学习第二天_第1张图片
图片
  • 总结几个知识点

    • ArrayList 类似于iOS的可变数组,简单用法如下

      ArrayList data = new ArrayList<>();
      String temp = "item";
      for (int i = 0; i < 20; i++){
          data.add(i + temp);
      }
      
    • 获取ArrayList的长度

      data.size()
      
  • 把xml文件转换成View

            View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_rv_item, viewGroup, false);
    

更多recyclerView的用法 参考博客

你可能感兴趣的:(Android学习第二天)