您的位置:首页 > 其它

列表视图ListView之二

2015-10-29 18:06 106 查看
在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。

  在上一章,我们采用ArrayAdapter填充ListView,本章我们了解一下SimpleAdapter的应用。

一、SimpleAdapter应用
  1、打开“res/layout/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="horizontal" >

<ImageView

android:id="@+id/picture"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_margin="5dip"

android:contentDescription="@string/desc" />

<!-- 不加这一句会出现警告[Accessibility] Missing contentDescription attribute on image -->

<LinearLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical" >

<TextView

android:id="@+id/title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#16CCDD"

android:textSize="22sp" />

<TextView

android:id="@+id/info"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#666666"

android:textSize="16sp" />

</LinearLayout>

</LinearLayout>

2、ListView代码 
  (1)打开“src/com.genwoxue.listview_b/MainActivity.java”文件。
  然后输入以下代码:

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.app.ListActivity;

import android.os.Bundle;

import android.widget.SimpleAdapter;

//ListActivity本质仍然是一个Activity,只不过对于ListVivew更方便

public class MainActivity extends ListActivity {//写成Activity的话下面的setListAdapter会报错。

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//
setContentView(R.layout.activity_main);

//注意SimpleAdapter适配器用法

SimpleAdapter adapter = new SimpleAdapter(this,
getData(),//list

R.layout.activity_main, new String[]{"title","info","picture"},

new int[]{R.id.title,R.id.info,R.id.picture});

setListAdapter(adapter);

}

private List<Map<String,Object>> getData() {

List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();

Map<String, Object> map = new HashMap<String, Object>();

map.put("title", "图片");

map.put("info", "美辰良景,给你无限的遐思,让人感觉无限温馨……");

map.put("picture",
R.drawable.photo);//图片提前复制到drawable-hdpi文件夹了

list.add(map);

map = new HashMap<String, Object>();

map.put("title", "音乐");

map.put("info", "轻曼音乐,令人如入仙境,如痴如醉……");

map.put("picture",
R.drawable.music);

list.add(map);

map = new HashMap<String, Object>();

map.put("title", "视频");

map.put("info","震撼场景,360度的视觉捕获,一览无遗……");

map.put("picture",
R.drawable.video);

list.add(map);

return list;

}

}

ListView列表视图的显示需要三个元素:

  A.ListVeiw 用来展示列表的View。

  B.适配器 用来把数据映射到ListView上的中介。

  C.数据 具体的将被映射的字符串,图片,或者基本组件。

  simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)等等。下面的代码都直接继承了ListActivity,ListActivity和普通的Activity没有太大的差别,不同就是对显示ListView做了许多优化,方便显示而已。

  (2)运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: