Android学习第二天

Android学习第二天

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

  • 引入recyclerView

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

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

  • activity的布局文件中 activity_main

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          >
          <android.support.v7.widget.RecyclerView
              android:id="@+id/my_recycler_view"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:scrollbars="vertical">
          </android.support.v7.widget.RecyclerView>
      </LinearLayout>
    
  • 在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<String> getData(){
            ArrayList<String> 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<MyAdapter.ViewHolder> {
      
          private ArrayList<String> mData;
      
          public MyAdapter(ArrayList<String> 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);
              }
          }
      }
      

运行的结果如下
图片
  • 总结几个知识点

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

      ArrayList<String> 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的用法 参考博客

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容