Android 开发ListView学习总结
2017-07-05 20:02
323 查看
ListView
简单来说就是在一个页面上以列表形式显示数据,列表里有很多项item,其中item里边可以有单纯的文字,也可以图文结合。
(1)首先要有数据源来填充到item中
(2)ListAdapter数据适配器将数据源与listView对应起来
一:创建数据源
数据源Route类,可以自动生成其get()、set()、构造方法。
二:代码中使用步骤
首先建立当前页面的layout,添加listView组件
activity_order_list:
设置listView 中数据的View(也就是item项):效果图如下
在代码中进行设置
为listView添加数据:
简单来说就是在一个页面上以列表形式显示数据,列表里有很多项item,其中item里边可以有单纯的文字,也可以图文结合。
(1)首先要有数据源来填充到item中
(2)ListAdapter数据适配器将数据源与listView对应起来
一:创建数据源
数据源Route类,可以自动生成其get()、set()、构造方法。
public class Route { String time; String startPoint; String terminalPoint; String state; long orderId; public Route(String time, String startPoint, String terminalPoint, String state) { super(); this.time = time; this.startPoint = startPoint; this.terminalPoint = terminalPoint; this.state = state; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getStartPoint() { return startPoint; } public void setStartPoint(String startPoint) { this.startPoint = startPoint; } public String getTerminalPoint() { return terminalPoint; } public void setTerminalPoint(String terminalPoint) { this.terminalPoint = terminalPoint; } public String getState() { return state; } public void setState(String state) { this.state = state; } public long getOrderId() { return orderId; } public void setOrderId(long orderId) { this.orderId = orderId; } }
二:代码中使用步骤
首先建立当前页面的layout,添加listView组件
activity_order_list:
<LinearLayout 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" android:background="@color/white" android:orientation="vertical" > <TextView android:id="@+id/title" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="我的行程" android:textColor="#ffffff" android:textSize="20sp" /> <ListView android:id="@+id/routeListView" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </ListView> </LinearLayout>
设置listView 中数据的View(也就是item项):效果图如下
order_list_item:
<?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:background="@drawable/select_item" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@drawable/divide" android:orientation="vertical" android:showDividers="end" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="10dp" > </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/orderTime" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:paddingLeft="8dp" android:text="Text1" android:textColor="@color/noteColr" /> <TextView android:id="@+id/state" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:paddingLeft="8dp" android:text="Text1" android:textColor="@color/noteColr" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="8dp" > </LinearLayout> <LinearLayout android:layout_width="match_parent" android aede :layout_height="25dp" android:orientation="horizontal" > <ImageView android:layout_width="20dp" android:layout_height="20dp" android:paddingLeft="8dp" android:src="@drawable/start" /> <TextView android:id="@+id/startPoint" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:paddingLeft="8dp" android:text="起点" android:textColor="@color/textColor" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="8dp" > </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="25dp" android:orientation="horizontal" > <ImageView android:layout_width="20dp" android:layout_height="20dp" android:paddingLeft="8dp" android:src="@drawable/end" /> <TextView android:id="@+id/terminalPoint" android:layout_width="wrap_content" android:layout_height="match_parent" android:paddingLeft="8dp" android:text="终点" android:textColor="@color/textColor" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="10dp" > </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout>
在代码中进行设置
初始化:
List<Route> routeList; //添加数据
onCreate()里边:
routeList = new ArrayList<Route>(); //初始化listView适配器
routeListView.setAdapter(new ListAdapter());
class ListAdapter extends BaseAdapter { SparseArray<View> array; public ListAdapter() { array = new SparseArray<View>(); } @Override public int getCount() { // 集中数据的个数 return routeList.size(); } @Override public Object getItem(int position) { // 获取数据集中与与制定数据对应的索引项 return routeList.get(position); } @Override public long getItemId(int position) { // 指定行对应的id return position; } @Override public View getView(int position, View convertView, ViewGroup arg2) { // 获取每个Item的显示内容 convertView = array.get(position); if (convertView == null) { convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.order_list_item, null); TextView orderTime = (TextView) convertView.findViewById(R.id.orderTime); TextView startPoint = (TextView) convertView.findViewById(R.id.startPoint); TextView terminalPoint = (TextView) convertView.findViewById(R.id.terminalPoint); TextView orderState = (TextView) convertView.findViewById(R.id.state); Route route = routeList.get(position); orderTime.setText(routeList.get(position).getTime()); startPoint.setText(routeList.get(position).getStartPoint()); terminalPoint.setText(routeList.get(position).getTerminalPoint()); orderState.setText(routeList.get(position).getState()); convertView.setTag(routeList.get(position)); } return convertView; } }
为listView添加数据:
/** * 设置listView数据 */ private void setData() { // TODO Auto-generated method stub for (int i = 0; i < 20; i++) { routelist.add(new Route("2017-7-8","合肥站","之心城","已完成")); } routeListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub } }); }
相关文章推荐
- 个人开发总结分享:Android学习及如何利用android来赚钱
- 个人开发总结分享:Android学习及如何利用android来赚钱
- android学习之ListView总结
- Android之ListView原理学习与优化总结
- Android开发学习总结(1.22-广播机制(2)Broadcast)
- 个人开发总结分享:Android学习及如何利用android来赚钱
- android学习之ListView总结
- Android开发学习总结(1.20-XML解析)
- Android开发学习总结(1.1-1.15)
- Android之ListView原理学习与优化总结
- Android初级开发第八讲--ListView学习以及特性介绍
- Android研究院之ListView原理学习与优化总结
- 【Android 开发教程】ListView的总结范例
- Android开发学习总结(1.18-文件下载)
- Android开发学习笔记:浅谈ListView
- Android初级开发第八讲--ListView学习以及特性介绍
- Android应用开发学习总结(二)——新建项目与目录结构了解
- Android研究院之ListView原理学习与优化总结
- Android开发学习总结(1.19-ContentProvider)
- Android开发学习总结(1.21-广播机制Broadcast)