在 Android 中使用 ListView 显示数据

先说两个用于布局的属性:

match_parent 和 wrap_content,另有一个 fill_parent 与 match_parent 相同

match_parent表示当前控件的大小和父布局一样,也就是说大小由上层布局控制;wrap_content表示让控件的大小可以包含里面的内容,也就是说大小是动态的,由内容的多少控制大小。

一、控件的放置

打开对应的页面,显示如下图:

image-20211122215058756

选择需要删除的控件,在上面按右键,使用删除就可以了,另外,将约束布局改为相对布局,放入 ListView 控件,改 ID 为 list_view 用于演示。更改完成后如下图:

image-20211122221938622

从 Text 中查看 xml 代码:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent">
    <ListView        android:id="@+id/list_view"        android:layout_width="match_parent"        android:layout_height="wrap_content" /></RelativeLayout>

二、关联代码

打开 java 文件,其中有系统自动生成的代码,屏蔽掉不使用的部分,加入运行所需要的,改完如下图:

public class NotificationsFragment extends Fragment {
    private NotificationsViewModel notificationsViewModel;
    private String[] data = {"apple", "orange", "blue", "black", "green"};
    public View onCreateView(@NonNull LayoutInflater inflater,                             ViewGroup container, Bundle savedInstanceState) {        notificationsViewModel =                ViewModelProviders.of(this).get(NotificationsViewModel.class);        View root = inflater.inflate(R.layout.fragment_notifications, container, false);
        ArrayAdapter adapter = new ArrayAdapter&lt;String&gt;(container.getContext(),                android.R.layout.simple_list_item_1, data);        ListView listView = (ListView)root.findViewById(R.id.list_view);        listView.setAdapter(adapter);
//        final TextView textView = root.findViewById(R.id.text_notifications);//        notificationsViewModel.getText().observe(this, new Observer() {//            @Override//            public void onChanged(@Nullable String s) {//                textView.setText(s);//            }//        });        return root;    }}

在以上的代码中,建立了一个数组 data,演示时为静态数据,实际运行时数据会取自数据库或者 webservice 一类的数据提供接口。

生成实际作用的是三行代码:

ArrayAdapter adapter = new ArrayAdapter&lt;String&gt;(container.getContext(),                android.R.layout.simple_list_item_1, data);        ListView listView = (ListView)root.findViewById(R.id.list_view);        listView.setAdapter(adapter);

1,新建一个 adapter 的适配器,传入的参数是上下文的连接、布局样式文件、数据集,在以上代码中,没有定义布局文件,使用了一个系统内置的文件,可用于显示文本

2,通过 ID 找到文件中的(xml 文件中)的 list_view

3,将两者绑定

三、运行

image-20211122224344305


文章标签:

原文连接:https://blog.csdn.net/wjhx/article/details/121484854

相关推荐

HTML 常用标签

不割韭菜,纯分享:剖析HTML中的类,运维开发必备前端技能,我们一起坚持。

Web端高分屏图片加载方案

Python网页解析库:用requests-html爬取网页

使用 Abp.Zero 搭建第三方登录模块(三):网页端开发

用Html标签和CSS3写的一个手机

极智开发 | 以男篮亚洲杯数据统计 讲解 HTML 列表和表格标签

初学者对html的认知

html和css的常用语法代码详解

【Web前端】HTML/CSS一文详解

炫酷登录注册 完整功能版【本地存储+JS+HTML+CSS+jQuery】

html+css制作扑克牌/小胡桃展开特教

热门App 高仿项目12 个 GitHub 上的高仿项目

高阶切图技巧!基于单张图片的任意颜色转换

前端页面项目——博客系统

!+tab快捷键“失灵”?,vscode自定义html快捷模板

【HTML】——基础知识点总结

聊一聊web图片小知识🔥

【Web前端】怎样用记事本写一个简单的网页-html

授予渔,从0开始搭建一个自己想要的网页