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

滚动菜单+图片ListView

目录

Fruit.java

FruitAdapter

MainActivity

activity_main.xml

fruit.xml


 整体结构 

Fruit.java

public class Fruit {private String name;private int imageId;public Fruit(String name, int imageId) {this.name = name;this.imageId = imageId;}public String getName() {return name;}public int getImageId() {return imageId;}
}

FruitAdapter

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;import java.util.List;public class FruitAdapter extends ArrayAdapter<Fruit> {private int resourceId;public FruitAdapter(Context context, int resource, List<Fruit> objects) {super(context, resource, objects);resourceId = resource;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Fruit fruit = getItem(position); // 获取当前 fruit 实例// 加载布局文件if (convertView == null) {convertView = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);}// 获取布局文件中的 ImageView 和 TextView 控件ImageView fruitImage = convertView.findViewById(R.id.fruit_image);TextView fruitName = convertView.findViewById(R.id.fruit_name);// 设置 ImageView 和 TextView 的值fruitImage.setImageResource(fruit.getImageId());fruitName.setText(fruit.getName());return convertView;}
}

MainActivity

import androidx.appcompat.app.ActionBar;
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 {private List<Fruit> fruitList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 隐藏系统自带标题栏ActionBar actionBar = getSupportActionBar();if (actionBar != null) {actionBar.hide();}// 初始化水果列表initFruits();// 创建自定义适配器FruitAdapter adapter = new FruitAdapter(MainActivity.this, R.layout.fruit, fruitList);// 将适配器设置给 ListViewListView listView = findViewById(R.id.list_view);listView.setAdapter(adapter);//添加一个点击事件listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Fruit fruit = fruitList.get(position);Toast.makeText(MainActivity.this, fruit.getName(), Toast.LENGTH_SHORT).show();}});}private void initFruits() {// 添加水果数据到列表for (int i = 0; i < 2; i++) {Fruit m0 = new Fruit("苹果", R.drawable.m0);fruitList.add(m0);Fruit m1 = new Fruit("苹果", R.drawable.m1);fruitList.add(m1);Fruit m2 = new Fruit("苹果", R.drawable.m2);fruitList.add(m2);Fruit m3 = new Fruit("苹果", R.drawable.m3);fruitList.add(m3);Fruit m4 = new Fruit("苹果", R.drawable.m4);fruitList.add(m4);Fruit m5 = new Fruit("苹果", R.drawable.m5);fruitList.add(m5);Fruit m6 = new Fruit("苹果", R.drawable.m6);fruitList.add(m6);Fruit m7 = new Fruit("苹果", R.drawable.m7);fruitList.add(m7);Fruit m8 = new Fruit("苹果", R.drawable.m8);fruitList.add(m8);Fruit m9 = new Fruit("苹果", R.drawable.m9);fruitList.add(m9);}}
}

activity_main.xml ⬅ 跳转上篇文章

fruit.xml

<?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"xmlns:tools="http://schemas.android.com/tools"tools:context=".Fruit"><ImageViewandroid:id="@+id/fruit_image"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/fruit_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"android:layout_marginLeft="10dp"/></LinearLayout>

最终效果

PNG资源素材请跳转    iconfont-阿里巴巴矢量图标库

相关文章:

滚动菜单+图片ListView

目录 Fruit.java FruitAdapter MainActivity activity_main.xml fruit.xml 整体结构 Fruit.java public class Fruit {private String name;private int imageId;public Fruit(String name, int imageId) {this.name name;this.imageId imageId;}public String getNam…...

【4k】4k的webrtc播放示例

目录 使用带研发角色的账号&#xff0c;在app端设置下分辨率 &#xff1a; 4k 点播 ffplay播放看下详细的参数 使用带研发角色的账号&#xff0c;在app端设置下分辨率 &#xff1a; 4k 点播 ffplay播放看下详细的参数...

PMIC 基础知识浅析(四)

PMIC 后端研究现状&#xff1a; 现今针对便携式移动平台的电源管理芯片仍以传统分离型 PMIC为主。 根据后端设计的特点&#xff0c;传统分离型 PMIC 又可分三大类。 控制芯片与开关 MOSFET 分离型&#xff0c;MOSFET 外置于PCB上&#xff0c;芯片仅提供智能控制功能。 此类IC…...

gin+gorm增删改查目录框架

从网上找资料,发现,很多都是直接的结构 路由&#xff0c;后端的controller层&#xff0c;还有model层&#xff0c;都是放在了同一个main.go文件中&#xff0c;如果写项目的话&#xff0c;还得自己去拆文件&#xff0c;拆代码&#xff0c;经过查询和自己总结&#xff0c;下面放…...

python进阶(二)导入import 机制 | 导入import 用法 工作原理全解析

文章目录 1. 整体概念基本介绍1.1 包package1.2 模块 module 2 基本语法2.1 import直接使用2.2 from 及其用法3.1 as的用法 3 工作原理3.1 搜寻3.2 执行3.3 避免导入模块代码执行 参考《Python应该如何导入&#xff08;import&#xff09;模块及包》梳理 1. 整体概念基本介绍 …...

极客时间-《罗剑锋的 C++ 实战笔记》文章笔记 + 个人思考

极客时间-《罗剑锋的 C 实战笔记》文章笔记 个人思考 语言特性06 | auto/decltype&#xff1a;为什么要有自动类型推导&#xff1f; 语言特性 06 | auto/decltype&#xff1a;为什么要有自动类型推导&#xff1f; auto 在C 11 引入。 为什么说C是静态强类型语言&#xff1f…...

Pytorch 对比TensorFlow 学习:Day 17-18: 循环神经网络(RNN)和LSTM

Day 17-18: 循环神经网络&#xff08;RNN&#xff09;和LSTM 在这两天的学习中&#xff0c;我专注于理解循环神经网络&#xff08;RNN&#xff09;和长短期记忆网络&#xff08;LSTM&#xff09;的基本概念&#xff0c;并学习了它们在处理序列数据时的应用。 1.RNN和LSTM基础…...

Java基础 - 07 Set之Set,AbstractSet

上边几篇&#xff0c;我们对java的List集合进行相关介绍&#xff0c;了解了关于List集合下的相关实现类的方法或者接口。 自本篇开始&#xff0c;将围绕java的Set进行介绍&#xff0c;也是对我java知识的巩固吧&#xff0c;处理业务越多&#xff0c;发现自己对基础知识的薄弱&…...

C++17新特性(三)新的标准库组件

1. optional 在编程时&#xff0c;我们经常会遇到可能会返回/传递/使用一个确定类型对象的场景。也就是说&#xff0c;这个对象可能有一个确定类型的值也可能没有任何值。因此&#xff0c;我们需要一种方法来模拟类似指针的语义&#xff1a;通过nullptr表示指针为空。解决方法…...

Spring Boot入门

SpringBoot介绍 什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其中“Boot”的意思就是“引导”&#xff0c;Spring Boot 并不是对 Spring 功能上的增强&#xff0c;而是提供了一种快速开发 Spring应用的方式。 特点 • 嵌入的 Tomcat&#xff0c…...

【LeetCode】数学精选4题

目录 1. 二进制求和&#xff08;简单&#xff09; 2. 两数相加&#xff08;中等&#xff09; 3. 两数相除&#xff08;中等&#xff09; 4. 字符串相乘&#xff08;中等&#xff09; 1. 二进制求和&#xff08;简单&#xff09; 从字符串的右端出发向左做加法&#xff0c;…...

【漏洞复现】Hikvision SPON IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 Hikvision Intercom Broadcasting System是中国海康威视&#xff08;Hikvision&#xff09;公司的一个对讲广播系统。 声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播…...

IDEA在重启springboot项目时没有自动重新build

IDEA在重启springboot项目时没有自动重新build 问题描述 当项目里面某些依赖或者插件更新了&#xff0c;target的class文件没有找到&#xff0c;导致不是我们需要的效果。 只能手动的清理target文件&#xff0c;麻烦得很 &#xff0c; 单体项目还好说&#xff0c;一次清理就…...

华为设备NAT的配置

实现内网外网地址转换 静态转换 AR1&#xff1a; sys int g0/0/0 ip add 192.168.10.254 24 int g0/0/1 ip add 22.33.44.55 24 //静态转换 nat static global 22.33.44.56 inside 192.168.10.1 动态转换 最多有两台主机同时访问外网 AR1&#xff1a; sys int g0/0/0 ip add…...

48-DOM节点,innerHTML,innerText,outerHTML,outerText,静态获取,单机click,cssText

1.DOM基础 Document Object Module,文档对象模型,window对象,document文档,都可以获取和操作 1)文档节点 2)属性节点(标签内的属性href,src) 3)文本节点(标签内的文字) 4)注释节点 5)元素节点(标签) 2.获取元素节点 2.1通过标签名获取getElementsByTagName() …...

多输入多输出 | Matlab实现基于LightGBM多输入多输出预测

多输入多输出 | Matlab实现基于LightGBM多输入多输出预测 目录 多输入多输出 | Matlab实现基于LightGBM多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于LightGBM多输入多输出预测&#xff08;完整源码和数据&#xff09; 1.data为数据集&a…...

【欢迎您的到来】这里是开源库get_local_info作者的付费专栏

您好&#xff0c; 我是带剑书生&#xff0c;开源库get_local_info的作者&#xff0c;欢迎您的到来&#xff0c;这里是我的付费专栏&#xff0c;在上一个付费专栏里&#xff0c;用简洁的语言&#xff0c;通俗的话语&#xff0c;帮助您更好的学习了Rust&#xff0c;现在将用本专栏…...

Java SE入门及基础(23)

目录 方法带参 1. 构造方法带参 案例场景 思考&#xff1a;以上代码存在什么问题&#xff1f; 2. 方法带参 方法带参语法 案例场景 思考&#xff1a;以上代码存在什么问题&#xff1f; Java SE文章参考:Java SE入门及基础知识合集-CSDN博客 方法带参 1. 构造方法带参 …...

蓝桥杯回文日期判断

思想&#xff1a;对于回文数的判断方法&#xff0c;最快的就是取其中一半的字符串长度&#xff0c;为s&#xff0c;然后将其进行翻转为s’ &#xff0c;再把两者进行拼接即可保证是回文数&#xff0c;这样子就解决了枚举所有回文数的问题。 注意点&#xff1a; 要求必须是有效…...

Qt文件和目录相关操作

1.相关说明 QCoreApplication类、QFile类、QDir、QTemporaryDir类、QTemporaryFile类、QFileSystemWatcher类的相关函数 2.相关界面 3.相关代码 #include "dialog.h" #include "ui_dialog.h" #include <QFileDialog> #include <QTemporaryDir>…...

告别重复造轮子:用快马AI一键生成高复用性imToken集成代码模块

告别重复造轮子&#xff1a;用快马AI一键生成高复用性imToken集成代码模块 开发涉及钱包集成的DApp时&#xff0c;最让人头疼的就是那些重复性的基础代码。每次新项目都要重新写一遍连接钱包、处理授权、监听网络切换的逻辑&#xff0c;不仅浪费时间&#xff0c;还容易引入安全…...

ASP.NET MVC 1.0 (五) ViewEngine 深入解析与应用实例

一.摘要 本文讲解ViewEngine的作用, 并且深入解析了实现ViewEngine相关的所有接口和类, 最后演示了如何开发一个自定义的ViewEngine. 本系列文章已经全部更新为ASP.NET MVC 1.0版本.希望大家多多支持! 二.承上启下 首先注意: 我会将大家在MVC之前一直使用的ASP.NET页面编程模…...

如何用开源工具实现3D打印钥匙自由?从参数测量到模型生成的实践路径

如何用开源工具实现3D打印钥匙自由&#xff1f;从参数测量到模型生成的实践路径 【免费下载链接】keygen OpenSCAD tools for generating physical keys 项目地址: https://gitcode.com/gh_mirrors/ke/keygen 在数字化制造蓬勃发展的今天&#xff0c;3D打印技术正逐步走…...

保姆级教程:用Docker Compose一键部署Dify AI平台(附国内镜像加速与端口冲突解决)

零门槛部署Dify AI开发平台&#xff1a;Docker Compose全流程指南与避坑手册 在AI应用开发领域&#xff0c;快速搭建一个稳定可靠的开发环境往往是项目成功的第一步。Dify作为一款面向开发者的AI应用开发平台&#xff0c;通过可视化编排和低代码方式大大降低了构建基于大语言模…...

重塑机械键盘体验:ZMK固件的革新之旅与实践指南

重塑机械键盘体验&#xff1a;ZMK固件的革新之旅与实践指南 【免费下载链接】zmk ZMK Firmware Repository 项目地址: https://gitcode.com/gh_mirrors/zm/zmk 在机械键盘的世界里&#xff0c;固件如同键盘的灵魂&#xff0c;决定着它的响应速度、功能拓展性和个性化程度…...

千问3.5-2B快速部署:Docker镜像一键run,7860端口自动监听,无需端口映射配置

千问3.5-2B快速部署&#xff1a;Docker镜像一键run&#xff0c;7860端口自动监听&#xff0c;无需端口映射配置 1. 千问3.5-2B模型介绍 千问3.5-2B是Qwen系列的小型视觉语言模型&#xff0c;它能够同时理解图片和生成文本。这个模型特别适合需要结合视觉和语言理解的任务场景…...

Cursor Pro破解工具:如何通过开源技术方案实现AI编程助手无限制使用?

Cursor Pro破解工具&#xff1a;如何通过开源技术方案实现AI编程助手无限制使用&#xff1f; 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能…...

PasteMD模板功能详解:创建个性化转换规则

PasteMD模板功能详解&#xff1a;创建个性化转换规则 你是不是经常从AI对话或者网页上复制内容到Word时&#xff0c;格式总是乱七八糟&#xff1f;公式变成乱码&#xff0c;表格错位&#xff0c;代码块失去高亮&#xff1f;PasteMD就是专门解决这个问题的神器&#xff0c;而它…...

ENet核心架构深度解析:从主机管理到对等通信

ENet核心架构深度解析&#xff1a;从主机管理到对等通信 【免费下载链接】enet ENet reliable UDP networking library 项目地址: https://gitcode.com/gh_mirrors/en/enet ENet是一款高性能的可靠UDP网络库&#xff0c;专为实时多人游戏和低延迟应用设计。它通过创新的…...

为什么92%的FastAPI流式AI项目在高并发下崩溃?深度解析event loop争用、response.body迭代器生命周期与uvicorn worker模型冲突

第一章&#xff1a;FastAPI 2.0流式AI响应的高并发失效现象全景透视当FastAPI 2.0被用于承载大语言模型&#xff08;LLM&#xff09;的SSE&#xff08;Server-Sent Events&#xff09;或分块Transfer-Encoding: chunked流式响应时&#xff0c;大量并发请求下常出现连接提前终止…...