初探ListView
ListView可能是Android开发中最常用的一个控件,但要用的纯熟还需要不断的锻炼。
建立简单的ListView
1.在布局文件(.xml)中添加<ListView>标签
2.在MainActivity.java中用适配器绑定
private String[] data = { "Apple", "Banana", "Orange", "Watermelon",
"Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this, android.R.layout.simple_list_item_1, data);
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(adapter);
可以看到 数组内容无法直接加到ListView中,所以要用适配器。
适配器中我用到了String来显示字符串,在往后这里可能会加入更复杂的内容,比如复合类型数据。
ArrayAdapter有多个构造函数,我这里的值分别是:调用的类,ListView的样式与数据来源。
简而言之,数据源是多样的,要想把他显示到ListView上,我们要使用适配器。
建立带图片的ListView
1.建立一个用于保存复合类型的类
2.创建1相应的布局文件
3.给1建立专用的适配器(extends ArrayAdapter)
4.在MainActivity中为ListView绑定适配器 1 package com.example.ran.listviewdemo;
/**
* Created by Ran on 2016/3/21.
*/
public class MyData
{
private String name;
private int imageId; public MyData(String name,int imageId)
{
this.name = name;
this.imageId = imageId;
}
public String getName() {
return name;
}
public int getImageId() {
return imageId;
}
}
imageId是对应图片的资源ID
<?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"> <ImageView
android:id="@+id/iimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <TextView
android:id="@+id/iname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
package com.example.ran.listviewdemo; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView; import java.util.List; /**
* Created by Ran on 2016/3/21.
*/
public class MyDataAdapter extends ArrayAdapter<MyData> {
private int resourceId; public MyDataAdapter(Context context, int textViewResourceId,List<MyData> objects)
{
super(context, textViewResourceId, objects);
resourceId = textViewResourceId;
} @Override
public View getView(int position, View convertView, ViewGroup parent)
{
MyData myData = getItem(position);
View view = LayoutInflater.from(getContext()).inflate(resourceId, null);
ImageView iimage = (ImageView) view.findViewById(R.id.iimage);
TextView iname = (TextView) view.findViewById(R.id.iname);
iimage.setImageResource(myData.getImageId());
iname.setText(myData.getName());
return view;
}
}
package com.example.ran.listviewdemo; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity { private List<MyData> dataList = new ArrayList<MyData>(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
MyDataAdapter adapter = new MyDataAdapter(MainActivity.
this,R.layout.data_item,dataList);
ListView listView = (ListView)findViewById(R.id.list_view);
listView.setAdapter(adapter);
} private void initData()
{
MyData t1 = new MyData("你真调皮,来,别BB",R.mipmap.t1);
MyData t2 = new MyData("你真调皮,来,别BB",R.mipmap.t2);
MyData t3 = new MyData("你真调皮,来,别BB",R.mipmap.t3);
MyData t4 = new MyData("你真调皮,来,别BB",R.mipmap.t4);
MyData t5 = new MyData("你真调皮,来,别BB",R.mipmap.t5);
MyData t6 = new MyData("你真调皮,来,别BB",R.mipmap.t6);
MyData t7 = new MyData("你真调皮,来,别BB",R.mipmap.t7);
MyData t8 = new MyData("你真调皮,来,别BB",R.mipmap.t8); dataList.add(t1);
dataList.add(t2);
dataList.add(t3);
dataList.add(t4);
dataList.add(t5);
dataList.add(t6);
dataList.add(t7);
dataList.add(t8); }
}

初探ListView的更多相关文章
- 初探ListView和Adapter
关于Android Adapter(适配器),参考Devin Zhang’s blog.简单的说,Adapter起到的作用是使得前端的显示和后端的数据能够适配,用以下代码作为例子 1234567891 ...
- Adapter基本用法
使用流程 graph LR A(新建适配器) -->B(绑定数据源) B-->C(设置适配器) 1. ArrayAdapter new ArrayAdapter<?>(cont ...
- ArrayAdapter、SimpleAdapter简单用法
1. 使用流程 2. ArrayAdapter new ArrayAdapter<?>(context, textViewResourceId, objects) context:上下 ...
- ListView初探
一.ListView介绍 在Android开发中ListView是比较常用的控件,常用于以列表的形式显示数据集及根据数据的长度自适应显示. ListView通常有两个主要功能点: (1)将数据集填充到 ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- Android开发学习之路-RecyclerView使用初探
在进行一些MaterialDesign规范开发的时候,比如之前说到的CoordinateLayout实现的向上折叠效果的时候,如果依然使用ListView,那么这种效果是做不出来的,因为ListVie ...
- Xamarin.Forms 初探
什么是 Xamarin Forms ? Xamarin Forms 是一个高效创建跨平台用户界面的库 .通过Xamarin Forms 能够一次编码生成基于主流移动平台(iOS, Android, W ...
- WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探
原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感 ...
- 张高兴的 UWP 开发笔记:横向 ListView
ListView 默认的排列方向是纵向 ( Orientation="Vertical" ) ,但如果我们需要横向显示的 ListView 怎么办? Blend for Visua ...
随机推荐
- Ant Table组件
http://www.cnblogs.com/hujunzheng/p/5689650.html React中使用Ant Table组件 v一.Ant Design of React http:/ ...
- VMware ESXI4.1 常用命令
一. VMware ESX Command 1. # vmware –v (查看esx版本) 2. # esxcfg-info -a(查看显示ESX硬件,内核,存储,网络等信息) # esxcfg- ...
- git忽略特殊文件
忽略特殊文件 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症 ...
- git Feature分支
Feature分支 软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在 ...
- Unix/Linux环境C编程入门教程(13) 开发环境搭建VMware软件安装
VMware(中文名威睿",纽约证券交易所"代码:VMW) 虚拟机软件,是全球桌面到数据中心虚拟化解决方案的领导厂商.全球不同规模的客户依靠VMware来降低成本和运营费用.确保业 ...
- UberX及以上级别车奖励政策(优步北京第二、三组)
优步北京第二.三组: 定义为2015年6月1日至7月19日激活的司机(以优步后台数据显示为准) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版 ...
- java 设计模式初探之适配器模式
1. 概述 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不 ...
- VC++学习之GDI概述
VC++学习之GDI概述 图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏 ...
- (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...
- HDU2955-Robberies
描述: The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usual ...