1.ListView的作用:

用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有数据则会滚出屏 幕。例如(查看QQ聊天记录,翻阅微博最新消息等等)

2.ListView简单使用方法:

2.1.将ListView添加到页面布局里

2.2.ListView在活动里干了三件事

(1)找到控件

(2)创建构造器(new ArrayAdapter<T>)构造函数中传入  (当前上下文,ListView子项布局id,适配的数据)

(3)控件中.setAdapter()方法,将创建好的构造器传进去。

3.定制ListView的界面(明确4步就行)

//1.首先需要创建layout布局,定制样式。//2.创建相应类(Fruit),对layout里面所需数据进行设置//也就是get,set,构造函数//3.自定义适配器,对相应的布局进行更改和设置(重点)//首先fanAdapter继承ArrayAdapter,泛型是创建的实体类public class fanAdapter extends ArrayAdapter<Fruit> //重写构造函数方法,我们只需用到第二个意思是子项布局的id(取出来赋值全局变量,方便后续操作)//子项布局id:可以理解成  listview里面的每一行列public fanAdapter(@NonNull Context context, int resource, @NonNull List<Demofan>         objects) {super(context, resource, objects);resourceId = resource;}//重写getView方法,这个方法在每个子项被滚动到屏幕内的时候会被调用。也就是刷新滚动页面//这个可以理解成对每一行里的每一个控件进行操作public View getView(int position, @Nullable View convertView, @NonNull ViewGroup        parent) {//通过getItem方法得到fruit实例:position也可以理解成子项id,位置Fruit fruit = getItem(position);//convertView参数:判断是否为空,如果为空就加载布局,否则重用布局//好处:提高效率,快速滚动时候性能更好if(convertView ==null){//使用LayoutInflater来为我们子项加载布局,传入子项布局id,视图,false是固定的view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);//实例化viewHolderviewHolder = new ViewHolder();viewHolder.images = (ImageView) view.findViewById(R.id.images);viewHolder.titles = (TextView) view.findViewById(R.id.titles);//调用View的setTag方法,将ViewHolder对象储存在View中view.setTag(viewHolder);}else{//当convertView不为null的时候,则调用View的getTag方法,把ViewHoler重新取出,这样每次//都是通过缓存取出view = convertView;viewHolder = (ViewHolder) view.getTag();}//简单设置数据操作viewHolder.images.setImageResource(fan.getImageId());viewHolder.titles.setText(fan.getName());/* TextView titles = (TextView) view.findViewById(R.id.titles);ImageView images = (ImageView) view.findViewById(R.id.images);titles.setText(fan.getName());images.setImageResource(fan.getImageId());*/return view;}//新增一个内部类ViewHolder,用于对控件的实例进行缓存class ViewHolder {ImageView images;TextView titles;}//4.在MainActivity里进行应用。//定义new ArrayList存储数据,(多态)private List<Fruit> fruitList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//里面就是写入数据的方法initFruits();//实例化这个自定义构造器fanAdapter fanAdapter = new fanAdapter(MainActivity.this, R.layout.fan_item, fruitList);ListView list = (ListView) findViewById(R.id.list_view);//listview监听点击事件list.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Override//int i是判断哪一个子项public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Demofan demofan = fruitList.get(i);String s = l + "";//显示数据Toast.makeText(MainActivity.this, demofan.getName()+s, Toast.LENGTH_SHORT).show();}});//把数据通过setAdapter传入到listView中list.setAdapter(fanAdapter);}

ListView控件的作用以及使用方法相关推荐

  1. listview控件在php的使用方法,Android_Android编程之控件ListView使用方法,本文实例讲述了Android编程之控 - phpStudy...

    Android编程之控件ListView使用方法 本文实例讲述了Android编程之控件ListView使用方法.分享给大家供大家参考.具体分析如下: 控件ListView是一个重要的控件,可以被用作 ...

  2. android listview 自定义控件,Android 自定义弹性ListView控件实例代码(三种方法)

    关于在Android中实现ListView的弹性效果,有很多不同的方法,网上一搜,也有很多,下面贴出在项目中经常用到的两种实现ListView弹性效果的方法(基本上拿来就可以用),供大家参考: 弹性L ...

  3. ListView控件的基本使用(方式一:使用ArrayAdapter适配器实现)

    ListView绝对可以称得上是Android中最常用的控件之一,几乎所有的应用程序都会用到它.由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候 ...

  4. qml的ListView控件添加ScrollBar

    下文提供了2种ListView控件和ScrollBar混合使用的方法: QML中ListView的高级使用之增加ScrollBar以及设置ScrollBar的样式_Joven_xxx的博客-CSDN博 ...

  5. android程序设计排序方法,Android编程之可以实现拖动排序的listview控件

    DragSortListView是一个可以实现拖动排序的listview控件,是我看到的交互较为复杂的开源代码中不管是代码质量还是流畅性都最好的. DragSortListView 简称DSLV,继承 ...

  6. ListView控件的使用方法,以及数据的绑定(关于会员等级)

    private void loadMemberLevelInfo() { try { //加载数据到List<> objMemberLevel = MemberLevelServices. ...

  7. ListView控件和Adapter

    文章目录 1.ListView组件的作用 2.Adapter的作用 2.1 android adapter的类图 3.adapter的使用 3.1 ArrayAdapter(数组适配器) 案例 3.2 ...

  8. Android列表ListView控件的使用

    在Android开发中,ListView是比较常用的控件,它以列表的形式显示具体内容,并且能够根据数据的长度自适应显示. 在ListView中可以根据需要显示自定义的列表内容,包括文字(TextVie ...

  9. ListView控件的理解——自洽理论

    写在前面的话: *标题中已经说明,是自洽理论.因此,有几率会有理解错误.但是,你不可以因此骂我. -我这个人经不起别人的批评,如果你批评我,我就,我就.... ## <第一行代码>读书笔记 ...

最新文章

  1. (Asp.Net)转载-用Powershell 建立IIS web site
  2. 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
  3. VS环境下的makefile编译
  4. Android 一个Activity 里面放置多个 Fragment 实现点击切换的Tab 页面效果
  5. 钥匙计数之一(HDU-1483)
  6. 算术基本定理“质数分解唯一性的证明”:古典方法与现代方法
  7. 如何在一周内学会爬虫
  8. 当数据处理做不到实时,应该怎么办?
  9. 使用explain查询select查询语句执行计划
  10. python爬虫的用途_python爬虫用代理ip有什么用途?
  11. 数据库 : 事物以及隔离性导致的问题
  12. 【To Do! 重点 正则表达式】LeetCode 65. Valid Number
  13. Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例
  14. 5 EDA技术实用教程【基本语句2】
  15. 三点估算法_三点估算/PERT历时估算
  16. 内存条hyperx_HyperX是什么牌子内存条
  17. 相似的核心玩法之下,谁能在“自走棋”的路上走得更远?
  18. 在线教育大数据营销平台实战(五):CRM线索培育机制及动态评分模型
  19. Docker 存储卷
  20. 强化学习中的递归神经网络

热门文章

  1. 开源塞尔达,支持打包华为鸿蒙OS!还有更牛逼的来了
  2. P2P网贷平台运营必知
  3. Node.js 体验 — 当 Node.js 邂逅 Windows Azure
  4. mybatis动态sql及分页
  5. 【Uniapp 原生插件】商米内置打印机插件
  6. 关于64位MATLAB调用refprop函数时出错的解决方法
  7. oracle开窗函数有哪些,oracle分析函数理解(开窗函数)
  8. 数据库启动失败以及在cmd(命令窗口)中启动失败原因分析和解决
  9. AlphaGo Zero 模型框架
  10. 航天安网高清视频无损压缩解决方案—IDC机房监控系统案例