当前位置: 首页 > news >正文

Android Studio实现简单ListView

效果图
在这里插入图片描述

MainActivity

package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.ListView;import com.example.listviewtest.adapter.PartAdapter;
import com.example.listviewtest.bean.PartBean;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private ListView mListVie;private List<PartBean> mPartBeanList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mListVie = findViewById(R.id.lv);for (int i = 0; i < 100; i++) {mPartBeanList.add(new PartBean(i + 1, "材料" + i, 1 + i, 10 + i * 10, "材料厂" + i, i));}mListVie.setAdapter(new PartAdapter(MainActivity.this, mPartBeanList));}
}

PartBean 建议重新建一个软件包

package com.example.listviewtest.bean;public class PartBean {private int mId;private String mPartName;private int mPrice;private int mNum;private String mSuppier;private int mArea;public PartBean(int id, String partName, int price, int num, String suppier, int area) {mId = id;mPartName = partName;mPrice = price;mNum = num;mSuppier = suppier;mArea = area;}public int getId() {return mId;}public void setId(int id) {mId = id;}public String getPartName() {return mPartName;}public void setPartName(String partName) {mPartName = partName;}public int getPrice() {return mPrice;}public void setPrice(int price) {mPrice = price;}public int getNum() {return mNum;}public void setNum(int num) {mNum = num;}public String getSuppier() {return mSuppier;}public void setSuppier(String suppier) {mSuppier = suppier;}public int getArea() {return mArea;}public void setArea(int area) {mArea = area;}}

PartAdapter 适配器 建议重新建一个适配器包

package com.example.listviewtest.adapter;import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;import com.example.listviewtest.R;
import com.example.listviewtest.bean.PartBean;import java.util.List;public class PartAdapter extends BaseAdapter {private Context mContext;private List<PartBean> mPartBeanList;public PartAdapter(Context context, List<PartBean> partBeanList) {mContext = context;mPartBeanList = partBeanList;}@Overridepublic int getCount() {return mPartBeanList == null ? 0 : mPartBeanList.size();}@Overridepublic Object getItem(int i) {return getItem(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHolder viewHolder;if (view == null) {view = View.inflate(mContext, R.layout.pat_manger_item, null);viewHolder = new ViewHolder(view);view.setTag(viewHolder);} else {viewHolder = (ViewHolder) view.getTag();}PartBean partBean = mPartBeanList.get(i);viewHolder.mPartId.setText(String.valueOf(partBean.getId()));viewHolder.mPartName.setText(partBean.getPartName());viewHolder.mPrice.setText(String.valueOf(partBean.getPrice()));viewHolder.mNum.setText(String.valueOf(partBean.getNum()));viewHolder.mSuppier.setText(partBean.getSuppier());viewHolder.mArea.setText(String.valueOf(partBean.getArea()));return view;}staticclass ViewHolder {View mView;TextView mPartId;TextView mPartName;TextView mPrice;TextView mNum;TextView mSuppier;TextView mArea;ViewHolder(View view) {this.mView = view;this.mPartId = view.findViewById(R.id.partId);this.mPartName = (TextView) view.findViewById(R.id.partName);this.mPrice = (TextView) view.findViewById(R.id.price);this.mNum = (TextView) view.findViewById(R.id.num);this.mSuppier = (TextView) view.findViewById(R.id.suppier);this.mArea = (TextView) view.findViewById(R.id.area);}}
}

activity_main.xml 顶部标题和 ListView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"android:orientation="vertical"tools:context=".MainActivity"android:layout_margin="5dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#BBD5E1"><TextViewandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="ID"android:textSize="14dp" /><TextViewandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="材料名称"android:textSize="14dp" /><TextViewandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="价格"android:textSize="14dp" /><TextViewandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="数量"android:textSize="14dp" /><TextViewandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="供应商"android:textSize="14dp" /><TextViewandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="占地"android:textSize="14dp" /></LinearLayout><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="wrap_content"/>
</LinearLayout>

pat_manger_item ListView中数据的展示格式

<?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"><TextViewandroid:id="@+id/partId"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="ID"android:textSize="10dp" /><TextViewandroid:id="@+id/partName"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="材料名称"android:textSize="10dp" /><TextViewandroid:id="@+id/price"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="价格"android:textSize="10dp" /><TextViewandroid:id="@+id/num"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="数量"android:textSize="10dp" /><TextViewandroid:id="@+id/suppier"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="供应商"android:textSize="10dp" /><TextViewandroid:id="@+id/area"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:text="占地"android:textSize="10dp" />
</LinearLayout>

相关文章:

Android Studio实现简单ListView

效果图 MainActivity package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.widget.ListView;import com.example.listviewtest.adapter.PartAdapter; import com.example.listviewtest.bean.PartB…...

【设计模式】模板模式

什么是模板模式&#xff1f; 模板方法模式&#xff08;Template Method Pattern&#xff09;&#xff0c;又叫模板模式(Template Pattern)&#xff0c;在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行…...

配置docker和复现

1.Nginx环境搭建 选择centos7来进行安装 1.1 创建Nginx的目录并进入 mkdir /soft && mkdir /soft/nginx/ cd /soft/nginx/ 1.2 下载Nginx的安装包&#xff0c;可以通过FTP工具上传离线环境包&#xff0c;或者通过wget命令在线获取安装包 wget https://nginx.org/down…...

Qt应用开发(基础篇)——工具箱 QToolBox

一、前言 QToolBox类继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是Qt常用的基础工具部件。 框架类QFrame介绍 QToolBox工具箱类提供了一列选项卡窗口&#xff0c;当前项显示在当前选项卡下面&#xff0c;适用于分类浏览、内容展示、操作指引这一类的使用场景。 二…...

地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算

经纬度与ECEF直角坐标的基本换算 我们目前最常用的全球坐标系是WGS-84坐标系&#xff0c;各种手机、地图基本用经纬度来标记位置。然而&#xff0c;经纬度对于空间的计算是很复杂的&#xff0c;需要很多三角函数操作。平面直角坐标系利用向量的运算&#xff0c;可以非常方便的…...

【UE4 RTS】08-Setting up Game Clock

前言 本篇实现的效果是在游戏运行后能够记录当前的游戏时间&#xff08;年月日时分秒&#xff09;&#xff0c;并且可以通过修改变量从而改变游戏时间进行的快慢。 效果 步骤 1. 在Blueprints文件夹中新建如下两个文件夹&#xff0c;分别命名为“GameSettings”、“Player”…...

百度chatgpt内测版

搜索AI伙伴 申请到了百度的chatgpt&#xff1a; 完整的窗口布局&#xff1a; 三个哲学问题&#xff1a; 灵感中心&#xff1a; 请做一副画&#xff0c;一个渔夫&#xff0c;冬天&#xff0c;下着大雪&#xff0c;在船上为了一家的生计在钓鱼&#xff0c;远处的山上也都是白雪&a…...

[GAN] 使用GAN网络进行图片生成的“调参人”入门指南——生成向日葵图片

[GAN] 使用GAN网络进行图片生成的“炼丹人”日志——生成向日葵图片 文章目录 [GAN] 使用GAN网络进行图片生成的“炼丹人”日志——生成向日葵图片1. 写在前面&#xff1a;1.1 应用场景&#xff1a;1.2 数据集情况&#xff1a;1.3 实验原理讲解和分析&#xff08;简化版&#x…...

(十)人工智能应用--深度学习原理与实战--模型的保存与加载使用

目的:将训练好的模型保存为文件,下次使用时直接加载即可,不必重复建模训练。 神经网络模型训练好之后,可以保存为文件以持久存储,这样下次使用时就不重新建模训练,直接加载就可以。TensorfLow提供了灵活的模型保存方案,既可以同时保存网络结构和权重(即保存全模型),也可…...

Java“牵手”1688商品详情页面数据获取方法,1688API实现批量商品数据抓取示例

背景&#xff1a;1688商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取1688商品详情数据&#xff0c;您可以通过开放平台的接口或者直接访问1688商城的网页来获取商品详情信息。以下是两种常用方法的介绍&a…...

Docker_docker runContainerd

docker run-Containerd docker run -it 运行容器交互式方式启动守护进程方式启动其他命令 docker部署nginx服务k8s废弃docker原因安装和配置containerdcontainerd常用命令 docker run -it 运行容器 交互式方式启动 # 以交互式方式启动并进入容器 docker run --namehello -it …...

python中常见的矩阵变换总结

利用python做数据处理和分析过程中&#xff0c;如在开展机器学习的数据预处理、数据格式转换等等&#xff0c;不可避免的会涉及到各种矩阵变换&#xff0c;其中使用最多的就是numpy下的矩阵变换&#xff0c;以下是日常用到的一些矩阵变换总结&#xff0c;主要有矩阵中数据类型的…...

LightningChart JS 2023Crack,CPU高效实时更新

LightningChart JS 2023Crack,CPU高效实时更新 添加了新的极地热图图表类型-添加了新系列类型&#xff0c;允许您在极地坐标系中可视化热图。极地热图的一些关键特征是&#xff1a; 处理多达400万个数据点。 快速加载速度和CPU高效实时更新。 100ms以完全显示由所有数据填充的热…...

hutool 导出复杂表头excel

假如已这样的表头导出数据 1.把包含表头的excel添加到项目资源目录 2.编写代码读取表头所在sheet,并且加入需导出的数据 /*** 导出excel*/public static void downloadExcel(List<List<Object>> list, HttpServletResponse response) throws IOException {/*Strin…...

git和github学习

一、什么是git和github? 二、学会使用github desktop应用程序 初始使用&#xff1a; 一开始我们是新账户&#xff0c;里面是没有仓库的&#xff0c;需要手动创建一个仓库。此时&#xff0c;这个仓库是创建在本地仓库里面&#xff0c;需要用到push命令&#xff08;就是那个pub…...

竞赛项目 车位识别车道线检测 - python opencv

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) …...

中文版开源Llama 2同时有了语言、多模态大模型,完全可商用

可以说&#xff0c;AI 初创公司 LinkSoul.Al 的这些开源项目让海外开源大模型在国内的普及和推广速度与国际几乎保持了一致。 7 月 19 日&#xff0c;Meta 终于发布了免费可商用版本 Llama 2&#xff0c;让开源大模型领域的格局发生了巨大变化。 Llama 2 模型系列包含 70 亿、…...

JavaScript、TypeScript、ES5、ES6之间的联系和区别

ECMAScript&#xff1a; 一个由 ECMA International 进行标准化&#xff0c;TC39 委员会进行监督的语言。通常用于指代标准本身。JavaScript&#xff1a; ECMAScript 标准的各种实现的最常用称呼。这个术语并不局限于某个特定版本的 ECMAScript 规范&#xff0c;并且可能被用于…...

RCNA——单臂路由

一&#xff0c;实验背景 之前的VLAN实现的很多都是相同部门互相访问&#xff0c;不同部门无法访问。不过这次整来了一个路由器&#xff0c;领导说大部分的部门虽说有保密信息需要互相隔离&#xff0c;但是这些部门和其它部门也应该互相连通以方便工作交流。因此要配置新的环境&…...

leetcode做题笔记69

给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 思路一&#xff…...

MIT App Inventor完整指南:如何零基础快速开发Android和iOS应用

MIT App Inventor完整指南&#xff1a;如何零基础快速开发Android和iOS应用 【免费下载链接】appinventor-sources MIT App Inventor Public Open Source 项目地址: https://gitcode.com/gh_mirrors/ap/appinventor-sources 你是否曾经梦想过开发自己的手机应用&#xf…...

如何用Ryujinx在电脑上畅玩Switch游戏:从零开始的终极指南

如何用Ryujinx在电脑上畅玩Switch游戏&#xff1a;从零开始的终极指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验《塞尔达传说&#xff1a;旷野之息》或《超级马里…...

[具身智能-463]:无论语音识别,还是语音合成,为什么不直接在时域波形与文字之间映射,而必须通过中间的频域进行转换?

这是一个非常深刻且直击本质的问题&#xff01;这触及到了信号处理和深度学习在语音领域的核心逻辑。简单来说&#xff0c;时域波形&#xff08;Waveform&#xff09; 就像是“原材料”&#xff0c;杂乱无章且冗余&#xff1b;而频域&#xff08;Frequency Domain&#xff09; …...

FieldTrip脑电分析工具箱:从零开始掌握MEG/EEG/iEEG数据分析的终极指南

FieldTrip脑电分析工具箱&#xff1a;从零开始掌握MEG/EEG/iEEG数据分析的终极指南 【免费下载链接】fieldtrip The MATLAB toolbox for MEG, EEG and iEEG analysis 项目地址: https://gitcode.com/gh_mirrors/fi/fieldtrip 你是否正在寻找一个功能强大且完全免费的脑电…...

WinCC V7.5 SP1图层控制脚本实战:从单个显示到组合切换的完整代码解析

WinCC V7.5 SP1图层控制脚本实战&#xff1a;从单个显示到组合切换的完整代码解析 在工业自动化HMI开发中&#xff0c;WinCC的图层控制功能是构建复杂人机界面的重要工具。面对包含数十个图层的画面时&#xff0c;如何高效管理图层显示状态成为工程师必须掌握的技能。本文将带您…...

ARIMA模型保存与加载问题解决方案

1. ARIMA模型保存与加载的完整指南在时间序列分析领域&#xff0c;ARIMA&#xff08;自回归积分滑动平均&#xff09;模型是最经典且广泛应用的预测工具之一。作为Python数据分析师&#xff0c;我们经常需要将训练好的模型保存下来供后续使用。然而在实际操作中&#xff0c;sta…...

用LC118这颗SOP-8小芯片,搞定你的3V玩具小车电机正反转(附完整电路)

用LC118这颗SOP-8小芯片打造3V玩具小车电机驱动方案 在微型机器人或玩具车设计中&#xff0c;电机驱动电路往往是决定整体性能的关键环节。当项目受限于两节AA电池或单节锂电池供电时&#xff0c;传统驱动方案常面临电压不足、功耗过大或体积超标等问题。LC118这颗SOP-8封装的驱…...

Java开发者AI转型第十三课!知识库终局方案:Spring AI Vector Store架构演进与ETL全链路入库实战

大家好&#xff0c;我是直奔標杆&#xff01;专注Java开发者AI转型实战分享&#xff0c;和大家一起从零基础吃透Spring AI&#xff0c;少走弯路、直奔技术标杆&#xff5e;欢迎来到《Spring AI 零基础到实战》专栏第十三课&#xff0c;也是我们RAG全链路实战的关键一环&#xf…...

别再让点云‘拖影’毁了你的SLAM地图:IMU辅助校正的避坑指南与效果对比

激光SLAM运动畸变校正实战&#xff1a;从IMU融合到点云优化的全流程解析 当你在狭窄走廊快速转身时&#xff0c;激光雷达突然变成"抽象派画家"——点云拖影、特征模糊、建图扭曲&#xff0c;这些现象背后都指向同一个元凶&#xff1a;运动畸变。本文将带你深入理解畸…...

如何为RTL8852BE Wi-Fi 6网卡编译完美Linux驱动?终极完整指南

如何为RTL8852BE Wi-Fi 6网卡编译完美Linux驱动&#xff1f;终极完整指南 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 在Linux系统上为Realtek RTL8852BE Wi-Fi 6网卡寻找合适的驱动一…...