Android學(xué)習(xí)第二天

Android學(xué)習(xí)第二天

  • recyclerView的學(xué)習(xí) (和iOSUITableView控制作用類似,都是展示很多數(shù)據(jù)的列表)

  • 引入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中

     /*
        * 初始化數(shù)據(jù)
        * */
        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);
        }
    
        /*
        *
        * 獲取數(shù)據(jù)
        * */
        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;
        }
    
  • 聲明一個(gè)適配器

    • 新建一個(gè)適配器類,叫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) {
      
              // 實(shí)例化展示的view
              View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_rv_item, viewGroup, false);
              // 實(shí)例化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);
              }
          }
      }
      

運(yùn)行的結(jié)果如下
圖片
  • 總結(jié)幾個(gè)知識(shí)點(diǎn)

    • ArrayList 類似于iOS的可變數(shù)組,簡(jiǎn)單用法如下

      ArrayList<String> data = new ArrayList<>();
      String temp = "item";
      for (int i = 0; i < 20; i++){
          data.add(i + temp);
      }
      
    • 獲取ArrayList的長(zhǎng)度

      data.size()
      
  • 把xml文件轉(zhuǎn)換成View

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

更多recyclerView的用法 參考博客

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容