Android ListView初步
一、基本概念
ListView相信大家一定不陌生,用了安卓手机也有一些时间了,我发现几乎所有的应用都用到了ListView,所以可见ListView是多么重要的一个组件。但是,感觉自己对它的掌握和理解还是差很多,于是根据开发经验以及网上的资料来写一篇文章整理对ListView的理解。
ListView
extends AbsListView
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView<T extends android.widget.Adapter>
↳ android.widget.AbsListView
↳ android.widget.ListView
Known Direct Subclasses
ExpandableListView
ListView是一个显示一个垂直滚动列表中项目的视图,项目来自与此视图相关的ListAdapter。
XML属性:
(4)android:divider 各个项目之间的分隔符,可以用Drawable 或者 color 来表示。
(2)android:dividerHeight divader的高度。
(3)android:entries 对数组资源,的引用用来填充列表,事实上很多人用ArrayAdapter。
还用一个比较重要的方法就是SetAdapter()。当我们实例化一个ListView,然后就调用SetAdapter()方法来进行数据的绑定。其中Adapter一般有以下几种:ArrayAdapter,SimpleAdapter和SimpleCursorAdapter以及BaseAdapter。ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。
二、实例
①用ListView来显示文本,点击文本进入另一个Activity。
我们用两种方法来实现,一个是用xml属性里的entries,另一个是ArrayAdapter。先用第一种方法,在values文件夹里面新建arrays.xml:
[html]
<SPAN style="FONT-SIZE: 14px"><?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="listtext">
<item>安卓</item>
<item>苹果</item>
<item>WindowsPhone</item>
</string-array>
</resources></SPAN>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="listtext">
<item>安卓</item>
<item>苹果</item>
<item>WindowsPhone</item>
</string-array>
</resources> main.xml中添加ListView组件,如下:
[java]
<SPAN style="FONT-SIZE: 14px"><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"
tools:context=".ListViewDemo" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:entries="@array/listtext"//用来在ListView显示的文本
android:layout_height="match_parent" >
</ListView>
</RelativeLayout></SPAN>
<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"
tools:context=".ListViewDemo" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:entries="@array/listtext"//用来在ListView显示的文本
android:layout_height="match_parent" >
</ListView>
</RelativeLayout> MainActivity.javaa如下:
[java]
<SPAN style="FONT-SIZE: 14px">package com.example.listviewdemo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.DataSetObserver;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ListViewDemo extends Activity {
private ListView listView;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_demo);
listView=(ListView) findViewById(R.id.listview);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch(arg2){
case 0:
intent=new Intent(ListViewDemo.this,OtherActivity.class);
startActivity(intent);
break;
case 1:
&nb
补充:移动开发 , Android ,