(Andorid基础)ListView控件的使用--BasicAdapter

避坑指南:Matlab R2022b的PDE工具箱这些参数千万别乱设 本文深入解析MATLAB R2022b的PDE工具箱参数设置技巧,重点探讨相对容差和绝对容差对偏微分方程求解精度与效率的影响。通过热传导方程和结构力学问题的案例分析,提供工程实践中的参数优化策略,帮助用户避免常见计算陷阱,提升求解稳定性和计算效率。 阅读详情

ListView可用与列表展示数据

数据设配器是数据与视图之间的桥梁

BasicAdapter是最基本的适配器

使用示例:

创建总列表数据试图 activity_main.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"
android:orientation="vertical">
<TextView
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:text="手机商城"
    android:textSize="18sp"
    android:textColor="#FFFFFF"
    android:background="#FF8F03"
    android:gravity="center"
    />
    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lv"/>
</LinearLayout>

当然还有单个列表元素的布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp">
    <ImageView
        android:layout_width="120dp"
        android:layout_height="90dp"
        android:id="@+id/iv"
        android:layout_centerVertical="true"/>
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/iv"
        android:layout_centerVertical="true"
        >
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="桌子"
            android:textSize="20sp"
            android:textColor="#000000"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="价格:"
            android:id="@+id/tv_price"
            android:textSize="20sp"
            android:layout_marginTop="10dp"
            android:layout_below="@id/title"
            android:textColor="#FF8F03"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/price"
            android:text="1000"
            android:textSize="20sp"
            android:layout_below="@+id/title"
            android:layout_toRightOf="@id/tv_price"
            android:textColor="#FF8F03"
            android:layout_marginTop="10dp"
            />
    </RelativeLayout>
</RelativeLayout>

创建逻辑处理类:
MainActivity.java:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private ListView myListView;
    //初始化商品与价格
    private String[]  titles = {"桌子" , "苹果" ,"蛋糕","香蕉","菠萝","榴莲"};
    private String[]  prices = {"100$" , "15$" ,"14$","14$","19$","18$"};
    private int[] icons = {R.drawable.ic_launcher_foreground,R.drawable.ic_launcher_foreground,R.drawable.ic_launcher_foreground,R.drawable.ic_launcher_foreground,R.drawable.ic_launcher_foreground,R.drawable.ic_launcher_foreground};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        myListView = (ListView)findViewById(R.id.lv);

        MyBaseAdapter myBaseAdapter = new MyBaseAdapter();
        myListView.setAdapter(myBaseAdapter);
    }
    class  MyBaseAdapter  extends BaseAdapter {
        @Override
        public int getCount() {
            return titles.length;
        }
        @Override
        public Object getItem(int position) {
            return titles[position];
        }
        @Override
        public long getItemId(int position) {
            return position;
        }
        //每一个li
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;
            if (convertView==null){
                convertView =  View.inflate(MainActivity.this,R.layout.list_item,null);
                //加载布局文件

                holder = new ViewHolder();
                holder.title = ((TextView) convertView.findViewById(R.id.title));
                holder.price = ((TextView) convertView.findViewById(R.id.price));
                holder.iv = ((ImageView) convertView.findViewById(R.id.iv));
                convertView.setTag(holder);
            }else {
                holder = (ViewHolder) convertView.getTag();
            }
            holder.title.setText(titles[position]);
            holder.price.setText(prices[position]);
            holder.iv.setBackgroundResource(icons[position]);
            return convertView;
        }
    }
    class ViewHolder{
        TextView title ,price;
        ImageView iv;
    }
}

说明:
1.自定义MyBaseAdapter类,继承BasieAdapter,实现四个方法,设置自己的数据属性
2.getView方法中,position参数为当前view的索引 convertView用于复用旧视图,parent用于设置布局文件
3.ViewHolder类用于复用旧视图
4.getView方法中判断 第一次加载的时候将视图缓存到convertView里,之后调用的都是缓存里的.

数据库迁移策略实战:MySQL到PostgreSQL 数据库迁移是一项复杂且细致的任务,需要充分的准备工作、合适的迁移策略和严格的验证与优化步骤。通过选择合适的迁移工具、进行手动迁移和应用程序适配、以及迁移后的验证与优化,可以确保数据迁移的成功和业务的连续性。希望本文的分享能够为大家在MySQL到PostgreSQL的数据库迁移实战中提供一些有用的参考和启示。 阅读详情

相关推荐

ubuntu18.04美化主题(完整版)

和网上的美化一样,但是我当初跟着博客美化的时候遇到一些问题,按博客的做法无法解决。 所以我自己也写一篇关于ubuntu18.04美化主题的博客。 第一步:安装主题工具:GNOME Tweaks sudo apt-get update sudo apt-get install gnome-tweak-tool 然后安装完成后我们打开Tweaks(截图如下): 第二步,修改窗口按钮位...

B丶atty的博客 7万+

Android 中一个封装还不错的BasicAdapter

Android 中一个简单封装的BasicAdapter平时我们在项目中,经常使用adapter,自己封装了一下,感觉用起来还不错,在使用过程中,直接传递,不用考虑list是否为null,代码如下package com.example.adapter;import android.content.Context; import android.view.View; import android.vi

知行合一 946

从机械到数字:EC11旋转编码器与ESP32的PWM控制艺术

本文详细解析了EC11旋转编码器与ESP32的PWM控制技术,探讨了如何将机械旋转动作转换为精确的数字信号控制。通过硬件连接、信号处理和软件优化等实践技巧,开发者可以构建高效的人机交互系统,适用于智能照明、电机控制等多种应用场景。

android的专栏 785

ListAdapter方法介绍

ListView是常用的列表显示控件,而ListView显示数据就需要ListAdapter实现类对象的支持,下面是一张前面文章中的插图,这张图可以看出ListView是需要ListAdapter对象的,也可以看到ListAdapter接口的实现层次。Android提供的实现类有两种,其一SimpleAdapter,ArrayAdapter,CursorAdapter都继承自BaseAdapter

vqqYuAn的专栏 3586

【黑马-产品经理入门基础课笔记】01.认识产品经理

问题定义 ==> 可行性研究 ==> 需求分析。

2401_88466092的博客 1841

PostgreSQL+PostGIS实战:5分钟搞定Shapefile数据导入(附避坑指南)

本文详细介绍了如何使用PostgreSQL和PostGIS快速导入Shapefile空间数据,包括5分钟标准流程和常见问题解决方案。通过实战案例和避坑指南,帮助GIS工程师高效处理矢量数据导入中的编码、几何类型、坐标系等典型问题,提升空间数据库管理效率。

weixin_42565652的博客 400

Android 通用Adapter封装

从开始学习封装,就是仿照慕课网某视频学习的。这才过去半年,自己也有思路了,现在把我的封装代码贴出来,给初学者一点帮助吧。有任何问题,请联系我。/** * 描述:单布局适配器基类 * author SunXiaoGang * E-mail sunxiaogang0214@163.com * Created by SunXiaoGang on 16/9/23. */ public abstra

sunxiaogang0214的博客 494

【 史上最全】测绘、遥感RS、地信GIS国家级比赛竞赛整理

目录Esri Esri

weixin_43910227的博客 9153

Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter

总结: Adapter相当于一个数据源,可以给AdapterView提供数据,并根据数据创建对应的UI,可以通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作为数据源。 Adapter接口 : Adapter接口定义了如下方法: public abstract void registerDataSetObserver (DataSetObserv...

hdquan321的博客 646

S32K系列之PDB框图详解及PDB触发ADC

可编程延迟模块PDB,PDB可提供从内部或外部触发或可编程间隔信号到ADC硬件触发输入的可控制延迟。 PDB可以选择提供脉冲输出,用作CMP块中的采样窗口。 S32K系列的PDB资源如下表: PDB功能框图 在下图中,以下字母表示的意义: N:PDB通道的总数 n:PDB通道号,范围从0到N-1 M:每个PDB通道的总可用预触发 m:预触发编号,范围从0到M-1 Y:脉冲输出的总数 y:脉冲数...

zz56z56的博客 1万+

slew dreate,slew threshold与transition计算

​只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:​。如下示例,在.lib库中有定义以下内容。

m0_61544122的博客 793

关于android的BaseAdapter自定义适配器的理解与使用

这个类里需要三个参数,一是数据的列表,list<封装好的列表需要的数据>。二是int类型参数,用来加载列表布局名称的,其三是Context,用来给LayoutInFlate的inflate方法里的root参数默认为空。其次,我们需要绑定控件,这个简单,使用LayoutInFlater的.from(context)和.inflate(之前用来加载数据名称的int类型数据,null);第二个参数,convertView,是Spinner,listview,gridview显示时用的窗体。

weixin_65168955的博客 646

由ip地址和子网掩码求网络号、主机号、广播地址(超详细)

1、用二进制数表示IP地址   在进行计算之前,我们首先要学会十进制的IP地址怎么转换为二进制的IP地址。   给出一个例子: 十进制:172.16.25.3 二进制:10101100.00010000.00011001.00000011 1、如果两台主机的网络号相同,我们就说它们是同一网段 2、主机号的意义 - 1)主机号部分全变成1,即为该网段的广播地址 - 2)主机号部分全变成0,即为该网段的网路地址(网络号) 3、如果主机号部分为x位,则该网络能容纳最大主机数为: 2的x次方-2。减2

爱吃雪糕的小布丁的博客 9万+

BaseAdapter

BaseAdapter是最基础的Adapter类,也是最实用最常用的一个类,但是相比于ArrayAdapter之类的,对初学者来说却比较难理解。所以在这里介绍一下BaseAdapter。 Adapter是什么 An Adapter object acts as a bridge between an AdapterView and the underlying data for t...

weixin_34306446的博客 889

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android Listview 自定义BaseAdapter的实现及Listview优化示例

这篇文章我来讲一下 自定义BaseAdapter的实现示例及优势在哪里?因为手机屏幕就那么大,所以一次展示给用户看见的内容是固定的,如果你List中有1000条数据,不应该new1000个converView,那样内存肯定不足,应该学会控件重用,滑出屏幕的converView就在下面新进来的item中重新使用,只是修改下他展示的值。不过有的时候我们不能对其进行重构 比如带CheckBox的item,如果你使用判断,在你选中某个item的CheckBox时滑动时会出现混乱,这时你就必须去掉判断对其进行重构。

wh445306 2004

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

databinding使用_使用DataBinding的简单列表的强大且可重用的ListAdapter

databinding使用Through the years of developing Android apps, there have been countless times that we implemented simple lists. Lists that only have these basic features: 在开发Android应用程序的多年中,无数次我们实现了简单列表。...

weixin_26739079的博客 670

Android万能适配器BaseListAdapter

万能适配器

柯汐的博客 908

ListAdapter 详解

ListAdapter 详解 根据我的理解,ListAdapter 是向ListView提供数据,从而生成layout的。 SDK自带很多ListAdapter,各有不同的用法。因此,有必要逐个研究一番: 1、WrapperListAdapter 用于对其他ListAdapter再次封装的ListAdapter,是一个接口,还没有子类实现它。 用处不大吧?! 2、Simpl

smfwuxiao的专栏 4375

Android Fragment完全解析,关于碎片你所需知道的一切

转载请注明出处:http://blog.youkuaiyun.com/sinyu890807/article/details/8881711 我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界...

runfeel 1501

BaseRecyclerViewAdapterHelper 第三方的万能适配器

导入依赖 allprojects { repositories { google() jcenter() maven { url "https://jitpack.io" } } } implementation ‘com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.22’//万...

luihongyang的博客 394

android studio 之BaseAdapter

在android开发中,listView的使用频率颇高,所以adapter的应用也是相当多,现在我就来简要的介绍一下我们继承BaseAdapter的开发方式。

_oO微胖是最好的耶耶耶耶的博客 3201

基础框架之BaseViewHolder

import androidx.recyclerview.widget.RecyclerView; import android.view.View; public abstract class BaseViewHolder<T> extends RecyclerView.ViewHolder { public T itemData; public BaseViewHolder(View itemView) { super(itemView); .

七月的南方博客 2911

basequickadapter详解_BaseQuickAdapter使用(brvah实现多级列表)

BaseQuickAdapter特点可以减少重复代码添加Item点击事件,长按事件以及子控件的点击事件添加头部、尾部、下拉刷新、上拉加载涵盖多种动画处理,没有更多数据处理添加Item滑动动画。多种动画切换.添加新增删除Item动画网格、列表、流式布局随意切换添加空布局(列表无数据时,显示更加友好)拖拽和侧滑删除支持多类型布局字母导航添加依赖app内build.gradleimplementatio...

weixin_42352453的博客 2417

ExpandListView 使用简介

效果图 只能实现两层折叠。 属性简单介绍 divider :父布局之间的分割线样式 childDivider :子布局之间分割样式 dividerHeight :用于设置分割线的高度 childIndicator :用于设置子布局前显示的图标,不设置的话默认是没有图标的 groupIndicator :设置父布局前显示的图标 indicatorLeft/indicatorStart :默认图标距左侧距离 indicatorRight/indicatorEnd :默认图标

EleganceKing的博客 597

android BaseAdapter使用

listview布局BaseAdapterandroid 目录(?)[+] 步骤 使用BaseAdapter实现复杂的ListView的步骤: 1. 数据你要准备好 List getData()。 2. 继承ListActivity专有屏,不再需要setContentView(xxx)。  3. 创建一个继承自BaseAdapter的类。 4. 为List绑定适配器 se

doudou68_hi的专栏 559

ExpandListView使用详解,一篇足够

划重点:1.只能展示两级列表条目 2.由组与子元素组成,我们要分别对组元素以及子元素进行配置及操作 所以,只要是二级列表,无论布局是什么样,都可以考虑使用!并且,如果在使用listview需要两种不同的布局的时候也完全可以使用。还有,如果之前用过的人肯定知道,expandlistview是继承listview的。so、在使用上跟listview基本一样!废话不多说,直接上代码。

m0_37290787的博客 4458
上一篇: (Android基础)自定义对话框
下一篇: (android基础) RecyclerView使用
皮皮大虾
博客等级 码龄7年 6粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值