首页 > 其他分享 >4.列表控件的总结(ListView)

4.列表控件的总结(ListView)

时间:2024-03-27 21:23:58浏览次数:33  
标签:控件 layout public 列表 position ListView id view

ListView
常用的属性
android:divider 分割线的颜色
数据适配器


三个
BaseAdapter implements ListAdapter, SpinnerAdapter
public class SimpleAdapter extends BaseAdapter
public class ArrayAdapter<T> extends BaseAdapter
SimpleAdapter主要是显示图片加文字的东西例如:
image

相反ArrayAdapter主要适配与TextView控件 顾名思义 显示文字

那咱们来看看两个简单的SimpleAdapter ArrayAdapter的使用

注意注意注意!!!
创建的两个layout文件
一个用于显示ListView 另一个显示里面的内容
image
setContentView(R.layout.activity_first_second_list);
这个加载的是ListView框架
后面SimpleAdapter中的参数才是
SimpleAdapter simpleAdapter = new SimpleAdapter(
FirstActivity.this, things,
R.layout.activity_first,
new String[]{"name", "img"},
new int[]{R.id.tv_name, R.id.img_first});
五个参数大概是:
1.- 上下文(this)
2. 集合
3. resource资源(layout文件)
4. key值
5. 对应的控件(R.id.)

image

ArrayAdapter没啥好说的 三个参数对比TextView控件使用 注意第二个参数就行
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(SecondActivity.this, androidx.appcompat.R.layout.support_simple_spinner_dropdown_item, things);

有一个小注意点 就是你的图片像素很大话 要放在xxxhdpi中


ListView的优化

使用的是BaseAdapter适配器
主要就是写他的四个抽象方法

	@Override
        public int getCount() {  条目总数
            return 0;
        }

        @Override
        public Object getItem(int position) {   获取对象
            return null;
        }

        @Override
        public long getItemId(int position) {   获取id
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) { 获取视图
            return null;
        }

还正在研究呢 avd虚拟机启动又失败了
https://blog.csdn.net/daidai199505/article/details/108465038
推荐的是删除.lock文件 原因就是你的avd已经打开了 这就要正确关闭虚拟机
但还是打不开的话就删除原虚拟机设备 再来一个 换一个API

至于优化
public View getView(int position, View convertView, ViewGroup parent) { View view = View.inflate(ShopActivity.this,R.layout.activity_shop,null); TextView title = view.findViewById(R.id.title_shop); TextView price = view.findViewById(R.id.tv_price); ImageView imageView = view.findViewById(R.id.img_shop); title.setText(titles[position]); price.setText(prices[position]); imageView.setBackgroundResource(icons[position]); return view; }
就是将convertView(缓存的对象)重复使用来减少对象的创建
class ViewHolder { TextView title, price; ImageView imageView; }
将需要加载的控件变量放在这个类中
然后就是将view都改为convertView
title price imageView都是在ViewHolder中

标签:控件,layout,public,列表,position,ListView,id,view
From: https://www.cnblogs.com/gaodiyuanjin/p/18099698

相关文章

  • python-列表、元组、字符串、集合、字典等用法
    目录1.列表(list)1.1  列表的定义语法1.2  列表的下标索引1.3  列表的常用操作1.4  列表的循环遍历示例2.元组(tuple)3.字符串4.数据容器(序列)的切片4.2序列切片课后练习5.集合(set)5.1  集合的操作方法6.字典(dict)7.容器排序,排序之后会变成列表对象1.......
  • WPF StringFormat在Label控件无效
    在WPF程序设计时,若使用Label控件绑定数据后StringFormat进行格式化显示时发现设定的StringFormat无效,但TextBlock控件中使用StringFormat显示正常,导致Label控件StringFormat失败的根本原因在于Label控件的Content属性是一个object对象,Binding.StringFormat仅作用于string类型属性......
  • 3.Android 中Button控件点击事件改变的三个方法总结
    SDKlocationnotfound.DefineavalidSDKlocationwithanANDROID_HOMEenvironmentvariableorbysettingthesdk.dirpathinyourproject'slocalpropertiesfileat'E:\Android\Gao\local.properties'.还没等调试能控制台报错参考https://blog.csdn.n......
  • Python教程:深入探索 Python 列表(List)
    在Python中,列表(List)是一种非常常用且强大的数据结构,它能够存储多个元素,并提供了丰富的操作方法。本文将带您深入探索Python列表,从基础知识到高级应用,让您全面掌握列表的各种技巧和用法。1.列表基础1.1什么是列表列表是一种有序、可变、允许重复元素的数据结构,用方......
  • Android原生ViewPager控件实现卡片翻动效果
    本文实例为大家分享了Android控件ViewPager实现卡片翻动效果的具体代码,供大家参考,具体内容如下先放一张效果图:想要实现这样的效果其实并不是太难,需要对ViewPager的一些细节属性更深入的了解和认识,下面介绍下一个小demo的实现过程:**第一步、**创建卡片viewpager适配器的i......
  • python 列表基本操作
    python列表基本操作一、列表基本操作1.列表2.访问列表中的值3.更新列表4.删除列表元素5.Python列表脚本操作符6.Python列表截取与拼接7.嵌套列表8.列表比较9.Python列表函数&方法二、代码概述一、列表基本操作1.列表序列是Python中最基本的数据结构......
  • 列表案例
    1.列表去重1a=[1,2,2,3,3,4,5,5,6,6,3,3]2b=[]3foriinrange(0,len(a)):4if(a[i]notinb):5b.append(a[i])6print(a)7print(b)2.记录评委打分,排序去掉最高和最低分,计算平均分1"""2场景预设:学校组织了这么一个比赛,设置了10名评委打分,......
  • Nacos2.x 服务注册成功,但服务列表查询失败
    Nacos2.x服务注册成功,但服务列表查询失败-知乎(zhihu.com)这个问题的来源是Nacos的一个BUG,创建命名空间的时候,命名空间ID不能让其自动生成,自动生成的ID是没法用的,注册服务会失败,就是上面的这个问题。再创建一个命名空间test:指定命名空间ID和命名空间名称一致修改bo......
  • 安卓开发列表视图的使用
    在Android开发中,列表视图可以通过使用ListView控件来实现。以下是使用ListView的一般步骤:1.在布局文件中添加ListView:打开布局文件,将ListView控件添加到合适的位置,并设置其属性,如布局参数和适配器。例如:<ListView  android:layout_width="match_parent" ......
  • 2-13. 创建 ListView 中的 ItemTemplate
    上次作业漏了Row3另外补充一下,如果想要显示DarkEditorTheme的话,就需要开启EditorExtensionAuthoring然后就能开启DarkEditorTheme了创建ItemRowTemplate在Assets/Editor/UIBuilder下面新建UIDocument,起名叫ItemRowTemplate查看样例项目相关代......