ListView普通列表控件的使用
Android中的列表空间非常灵活,可以自定义每一个列表项,实际上每一个列表项就是一个View,在Android定义了3个列表控件:ListView、ExpandableListView和Spinner,其中Spinner就是在Windows中常见的下拉列表框。
ListView控件用于列表的形式显示数据,ListView控件采用MVC模式将前端显示和后端数据进行分离。也就是说,ListView控件在装载数据时并不是直接使用ListView.add或者类似的方法添加数据,而是需要指定一个Adapter对象。该对象相当于MVC模式中的C(控制器,Controller)。ListView提供数据的List或数组相当于MVC模式中的M(模型,Model)在ListView控件中通过Adapter对象获得需要显示的数据,在创建Adapter对象时需要指定要显示的数据(List或数组对象),因此,要显示的数据与ListView之间通过Adapter对象进行连接,同事又互相独立,也就是说,ListView只知道显示的数据来自Adapter,并不知道这些数据来自List还是数组。
MVC好处,MVC把应用程序的逻辑与界面是完全分开的,最大的好处是:界面设计人员可以直接参与到界面的开发,程序员就可以把精力放在逻辑层上。而不是像以前那样,设计人员把所有的材料交给开发人员,由开发人员来实现界面。在Eclipse工具中开发Android采用了更加简单的方法,设计人员在Androidraw中设计界面,以xml方式保存,在Eclipse中直接打开就可以看到设计人员的设计界面,逻辑处理的代码放在src文件夹下,让程序员更专注与业务。
1.视图层(View):一般采用XML文件进行描述,使用的时候可以非常方便的引入。
同时方便于后期的界面的修改。逻辑中与界面对应的id不变化则代码不用修改,大大增强了代码的可维护性。
2.控制层(controller):Android的控制层的重任通常落在众多的Activity的肩上,这句话也就暗含了不要在Activity中写代码,要通过Activity交割Model业务逻辑层处理,这样做的另外一个原因是Android中的Activity的响应时间是5s,如果耗时的操作放在这里,程序很容易被回收掉。
3.模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在该层的。就是应用程序中的二进制的数据。
一、建立工程,如图
二、activity_main.xml中代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><ListView android:id="@+id/listview"android:layout_width="fill_parent"android:layout_height="fill_parent"></ListView></RelativeLayout>
View Code
三、MyDataSource.java中代码
package com.study.listview;import java.util.ArrayList; import java.util.List;public class MyDataSource {public MyDataSource(){}public static List<String> getDataSource(){List<String> list = new ArrayList<String>();list.add("北京");list.add("上海");list.add("广州");list.add("贵州");list.add("海南");list.add("重庆");list.add("湖南");return list;} }
View Code
四、MainActivity.java中代码
package com.study.listview;import java.util.List;import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; //ListView普通列表空间的使用 public class MainActivity extends Activity {private ListView listView;private ArrayAdapter<String> adapter;private List<String> data = null; //表示数据源 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);data = MyDataSource.getDataSource();listView = (ListView)this.findViewById(R.id.listview);//adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,data);adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_multiple_choice,data);//1 adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice,data);//1 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE);listView.setAdapter(adapter);listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {Toast.makeText(MainActivity.this, "arg2=" + arg2 +",arg3=" + arg3, 1).show();return false;}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);return true;}}
View Code
五、效果图
转载于:https://www.cnblogs.com/kingshow123/p/listview21.html
ListView普通列表控件的使用相关推荐
- Adapter类型控件之ListView(列表控件)
(一)概述 Android中的列表控件飞创灵活,可以自定义每一个列表项,实际上每一个列表项就是一个View,在Android定义了3个列表控件:ListView.ExpandableListView和 ...
- java listview控件_ListView普通列表控件的使用
Android中的列表空间非常灵活,可以自定义每一个列表项,实际上每一个列表项就是一个View,在Android定义了3个列表控件:ListView.ExpandableListView和Spinne ...
- android listview添加数据_Android系统列表控件
在android系统控件中,有多个控件可以展示列表数据. 一.ListView 该组件是android中最常用的一个UI组件,用于实现在屏幕上显示多个内容,以便于我们用手指进行滑动. ListView ...
- 文件存储、列表控件 ListView 及适配器 SimpleAdapter、BaseAdapter 的使用方 法
一.文件存储 文件存储 Android中的文件存储分为内部存储和外部存储. 内部存储:将应用程序的数据以文件方式存储到设备的内部(data/[你的APP的包名]/files下),当创建的应用程序被卸载 ...
- Android列表控件选项中添加进度框ProgressBar实现
今天有时间就学习了下在ListView.GridView列表项中清加ProgressBar,小马用最简单的代码实现可以通用的功能,人人都能看懂,哈哈,直接说下,如果你的适配器getView方法 ...
- 虚拟列表控件---加载大数据行
平常所用到的列ListView/ListCtrl控件,都是只有行至几百行数据,直至今日,在项目中遇到了上10W量级数据条,终于感觉到普通加载的艰辛,遂到网上乱找一通,发现大同小异,转载了这篇比较详细的 ...
- 安卓进阶系列-05列表控件(RecyclerView)的使用
RecyclerView的使用 前言 在之前的博客中我介绍了ListView如何使用,当然那部分博客由于没有考虑基础的问题,写的跨度太大,后面我会全部重构的. ListView是一个滑动列表控件,随着 ...
- android 固定底部 布局_Android系统列表控件
在android系统控件中,有多个控件可以展示列表数据. 一.ListView 该组件是android中最常用的一个UI组件,用于实现在屏幕上显示多个内容,以便于我们用手指进行滑动. ListView ...
- Android开发-列表控件
列表控件是Android中最常见的控件之一 由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,就可以借助各种列表控件来实现. <ListV ...
- 【JQuery Mobile移动应用开发实战】JQuery Mobile基础——列表控件的使用
文章目录 5. 列表控件的使用 5.1 简单的新闻列表 5.2 音乐专辑列表的显示 5.3 更完善的音乐专辑列表 5.4 显示销售的商品列表 5.5 图书销量排名 5.6 简单的电话通讯录 5.7 让 ...
最新文章
- 用C#实现的条形码和二维码编码解码器
- 2018.8.5 复习笔记
- html标记的索引,基于HTML标记分析及中文切词的网页索引研究与实现
- outlook域用户名怎么填_家谱制作软件怎么做成电子版
- 科兴生物董事长:两针建立免疫记忆 三针后抗体提升十倍
- cocos2D中scheduleOnce的陷阱
- border 0px和border none的区别
- Java第二次作业參考代码
- 0906--学成在线页面案例
- 控制理论个人学习笔记-非线性系统理论
- 空域变换-直方图匹配(直方图规定化)
- 2010年通信工程概预算培训讲义
- 微信自定义二维码扫码支付
- win11电脑加密文件夹的两种方法
- webstorm中使用nodemon
- 《嵌入式 – GD32开发实战指南》第3章 GPIO流水灯的前世今生
- 我的世界服务器物品不丢弃,《我的世界》怎样处理没用的物品,这六个销毁物品方法了解一下!...
- 大数据时代,AIoT在智慧社区的深度应用
- “六如真言”,战必克,攻必取,无往不胜!
- 2010年1月21日俱乐部活动,同方软件CTO周洪波博士主讲物联网
热门文章
- 远程管理软件Royal TSX for Mac
- System Toolkit for Mac(Mac系统维护工具)
- SpringBoot使用Swagger2实现Restful API
- MongoDB 学习笔记之 手动预先分片
- HDU 1203 I need a offer! (01背包)
- Hadoop2.2.0--Hadoop Federation、Automatic HA、Yarn完全分布式集群结构
- JAVA 使用Dom4j 解析XML
- Ubuntu 分卷压缩和解压
- 宝贝,后端接口如何提高性能?
- 再见!收费的 XShell,我改用国产良心工具!