zoukankan      html  css  js  c++  java
  • Android学习第七天

    添加RecyclerView控件

    在布局中加入RecyclerView控件也是非常简单的,先为RecyclerView指定一个id,然后将宽度和高度都设
    置为match_parent,这样RecyclerView就占满了整个布局的空间。
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
    </LinearLayout>

    定义实体类和子项布局

    接着定义一个实体类,作为RecyclerView适配器的适配类型。

    新建Fruit类,代码如下所示: class Fruit(val name:String, val imageId: Int)

    定义实体类和子项布局
    然后需要为RecyclerView的子项指定一个我们自定义的布局,在layout目录下新建fruit_item.xml,
    代码如下所示:
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="60dp">
    <ImageView
    android:id="@+id/fruitImage"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_gravity="center_vertical"
    android:layout_marginLeft="10dp"/>
    <TextView
    android:id="@+id/fruitName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_marginLeft="10dp" />
    </LinearLayout>

    定义RecyclerView适配器

    接下来需要为RecyclerView准备一个适配器,新建FruitAdapter类,让这个适配器继承自
    RecyclerView.Adapter,并将泛型指定为FruitAdapter.ViewHolder。
    class FruitAdapter(val fruitList: List<Fruit>) : RecyclerView.Adapter<FruitAdapter.ViewHolder>() {
    inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    val fruitImage: ImageView = view.findViewById(R.id.fruitImage)
    val fruitName: TextView = view.findViewById(R.id.fruitName)
    }
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val view = LayoutInflater.from(parent.context).inflate(R.layout.fruit_item, parent, false)
    return ViewHolder(view)
    }
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val fruit = fruitList[position]
    holder.fruitImage.setImageResource(fruit.imageId)
    holder.fruitName.text = fruit.name
    }
    override fun getItemCount() = fruitList.size
    }

    使用RecyclerView
    适配器准备好了之后,我们就可以开始使用RecyclerView了。
    class MainActivity : AppCompatActivity() {
    private val fruitList = ArrayList<Fruit>()
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    initFruits() // 初始化水果数据
    val layoutManager = LinearLayoutManager(this)
    recyclerView.layoutManager = layoutManager
    val adapter = FruitAdapter(fruitList)
    recyclerView.adapter = adapter
    }
    private fun initFruits() {
    repeat(2) {
    fruitList.add(Fruit("Apple", R.drawable.apple_pic))
    fruitList.add(Fruit("Banana", R.drawable.banana_pic))
    fruitList.add(Fruit("Orange", R.drawable.orange_pic))
    fruitList.add(Fruit("Watermelon", R.drawable.watermelon_pic))
    fruitList.add(Fruit("Pear", R.drawable.pear_pic))
    fruitList.add(Fruit("Grape", R.drawable.grape_pic))
    fruitList.add(Fruit("Pineapple", R.drawable.pineapple_pic))
    fruitList.add(Fruit("Strawberry", R.drawable.strawberry_pic))
    fruitList.add(Fruit("Cherry", R.drawable.cherry_pic))
    fruitList.add(Fruit("Mango", R.drawable.mango_pic))
    }
    }
    }

  • 相关阅读:
    最小生成树问题-prim算法求解
    排序算法7---快速排序算法
    IOS工作笔记(九)
    NSUserDefaults的一些用法
    UIActionSheet的简单使用
    如何处理过多使用懒加载的问题?
    prefix.pch文件的一些简单使用
    IOS工作笔记(八)
    登录时本地保存账号密码及关闭ARC的方法
    IOS页面跳转的方法
  • 原文地址:https://www.cnblogs.com/yongyuandishen/p/14866047.html
Copyright © 2011-2022 走看看