当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,