小工具知识网

当前位置: 首页 > 行业知识 > Android Studio系列之ListView

行业知识

Android Studio系列之ListView

2026-11-01 12:19:14 来源:互联网转载

一、ListView的作用

        在安卓开发中,ListView可以理解为一个列表视图。例如淘宝、京东的搜索结果。下图中,每个商品的模块结构都一样,通过下滑操作会不断刷新出新的商品,这就是典型的ListView or RicycleView的结构。

二、ListView的写法

        很多博客博主都太厉害,对于ListView的讲解对于新手来说太不友好。这篇博客是我作为一个小白完完全全的笔记已经自我理解后整理的参悟,希望对小白选手有更大的借鉴意义。

主要分为三步走:①创建ListView ②创建item布局+自定义 ③将item映射到ListView内

        (一)创建ListView布局文件

                在当前页面的xml文件中添加ListView布局

    

        从第一张图片的右侧可以看出,ListView的默认状态,显然,我们还需要定义ListView内部的每一个item(项),sub item为子项本篇博客不涉及该内容。

         对于每一个item显然同样是个布局,我们需要重新定义item的布局并映射到LIstView中。

        (二)定义ListView内item的结构

                重新创建一个item.xml布局文件,用来定义每一个item的模板

        

                对于item的结构定义完毕,显然ListView中每一个item内容都不一样,我们不可能给每一个item都定义一个xml文件,由此,我们需要对item的内容进行自定义和复用。

        (三)定义每一个item具体的内容

                如淘宝所示,每一个item结构虽然相同,但是内容却大不一样,我们无法给每一个item都定义一个xml布局文件吧?这里我们选择新创建一个类作为给具体的不同item“赋值”的方式。

package com.example.learnproject;public class Bean {    String item_name;    String button_name;    //alt + insert, getter and setter    public String getButton_name() {        return button_name;    }    public void setButton_name(String button_name) {        this.button_name = button_name;    }    public String getItem_name() {        return item_name;    }    public void setItem_name(String item_name) {        this.item_name = item_name;    }}

                对于Bean这个类,实际上是对item定义的结构的一个类似映射一样的东西。我们需要对item这个结构做出多样化的定义,我们需要通过定义Bean类然后映射到具体的item上。通过对Bean的操作来达到对不同item的操作,而不需要给每一个item都做一个xml布局。

                到此我们还需要在主函数中定义Bean的列表,即初始化Bean。

        (四)初始化Bean

                这实际上是(三)的延续,初始化bean同样也是给具体的item赋值的内容,不过是在主函数中赋值,稍微有些不一样

package com.example.learnproject;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    //定义items列表    private List items = new ArrayList();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //自定义items        for(int i=0;i

上一篇:魔族怎么加入服务器?

下一篇:十三月怎么选服务器?