见归档项目ListViewDemo.zip.

基本步骤如下:

1、创建主布局文件,里面包含一个ListView元素。

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <ListView
android:id="@+id/listview"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:divider="#00ff00"
android:dividerHeight="2dp"
android:headerDividersEnabled="false"
/> </RelativeLayout>

2、创建一个TextView,用于指定每一个选项的格式

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="20dp"
android:background="#0000ff"> </TextView>

3、创建主类:

package com.ljh.listviewdemo;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.app.Activity; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // (1)创建要显示的文本内容
String[] arr = { "java", "c/c++", "python", "ruby" };
//(2)与使用ListActivity的最大区别:使用findViewById得到一个ListView
ListView lv = (ListView) findViewById(R.id.listview); // (3)创建ArrayAdapter,其中第二个参数resource:The resource ID for a layout file
// containing a TextView to use when instantiating views.是要以一个layout作为
// 参数,且此layout需要包含textview。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list, arr);
// (4)为ListActivity设置adapter.
lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener(){ //定义当某个选项被点击时的操作。
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, position+" item is clicked.", Toast.LENGTH_LONG).show(); } }); } }

使用ListActivity或ListView创建列表的区别:

1、用途区别:二者都只能支持TextView类型,更强大的支持能力请见SimpleAdapter。

ListActivity只能支持创建单个列表,而ListView可在同一页面创建多个列表,只要在布局文件中定义多个ListView元素即可。

2、创建时的区别:

ListActivity方法是继承了ListActivity,从而可以直接调用setListAdapter()及onListItemClick().

ListView方法必须通过findViewById()得到一个ListView,然后再通过其调用setListAdapter(),以及设置OfnListItemClick接口。

AdapterView及其子类之三:基于ListView及ArrayAdapter实现列表的更多相关文章

  1. AdapterView及其子类之四:基于ListView及SimpleAdapter实现列表

    代码请见SimpleAdapterDemo.zip. 步骤如下: 1.创建主布局文件 <RelativeLayout xmlns:android="http://schemas.and ...

  2. Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类

    一.引言       AdapterView本身是一个抽象类,而它派生的子类在用法上也基本相似,只是在显示上有一定区别,因此把他们也归为一类.       AdapterView具有如下特征: Ada ...

  3. 第3组UI组件:AdapterView及其子类

    1 AdapterView类简介 1.1 AdapterView组件是一组重要的组件,AdapterView本身是一个抽线类,实际使用更多的都是Adapter相关子类,AdapterView具有如下特 ...

  4. android-UI组件(四):AdapterView及其子类

    http://blog.csdn.net/litianpenghaha/article/details/23270881 AdapterView组件是一组重要的组件,AdapterView本身是一个抽 ...

  5. UI组件之AdapterView及其子类关系,Adapter接口及事实上现类关系

    AdapterView本身是一个抽象基类,它派生的的子类在使用方法上十分类似.AdapterView直接派生的三个子类:AbsListView.AbsSpinner,AdapterViewAnimat ...

  6. 深入理解使用ListView时ArrayAdapter、SimpleAdapter、BaseAdapter的原理

    在使用ListView的时候,我们传给setAdapter方法的Adapter通常是ArrayAdapter.SimpleAdapter.BaseAdapter,但是这几个Adapter内部究竟是什么 ...

  7. 第28讲 UI组件之 ListView和ArrayAdapter

    第28讲 UI组件之 ListView和ArrayAdapter 1. Adapter 适配器 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的 ...

  8. 安卓开发_浅谈ListView(ArrayAdapter数组适配器)

    列表视图(ListView)以垂直的形式列出需要显示的列表项. 实现过程:新建适配器->添加数据源到适配器->视图加载适配器 在安卓中,有两种方法可以在屏幕中添加列表视图 1.直接用Lis ...

  9. Android学习笔记(23):列表项的容器—AdapterView的子类们

    AdapterView的子类的子类ListView.GridView.Spinner.Gallery.AdapterViewFlipper和StackView都是作为容器使用,Adapter负责提供各 ...

随机推荐

  1. [C++程序设计]用数组名作函数参数

    1. 用数组元素作函数实参 #include <iostream> using namespace std; int max_value(int x, int max) { return ...

  2. python运维开发(二十)----models操作、中间件、缓存、信号、分页

    内容目录 select Form标签数据库操作 models操作F/Q models多对多表操作 Django中间件 缓存 信号 分页 select Form标签补充 在上一节中我们可以知道Form标 ...

  3. .net 拉姆达 groupby(p => p.X) order by count(c.Count())

    //国家 var entityCountriesList = aliexpressEntities.SYS_CourierCode.Where(whereSelect.Compile()).Group ...

  4. mysql 在启动时配置文件的查找方式

    知识储备: 1.mysql在启动时会去多个地方找它的配置文件,当然啦这些也都是可以从帮助中找到的,问题在于我们要知道怎么找到对应的帮助才行啊 实战: [root@workstudio data]# m ...

  5. 主要协议SCSI、FC、iSCSI

    一.SCSI SCSI是小型计算机系统接口(Small Computer System Interface)的简称,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机,高低端服 ...

  6. 在Qt中怎样显示ASCII码大于127的字符

    前段时间要显示“≤”符号找了挺久没找到方法,后面发现用以下方法可以解决: ushort gd[]={8805,0};    QString gteq=QString::fromUtf16(gd); 得 ...

  7. C# 将字节流转换为图片的实例方法

    usingSystem;  usingSystem.Collections.Generic;  usingSystem.Linq;  usingSystem.Text;  usingSystem.Dr ...

  8. 2014元旦第1周三新的尝试&爬山丢失望远镜

    2014元旦在早起中开始,起来后看了<逃出你的肖申克>系列文章,没有精度只是选择了里面的关键语句和方法论,没有多少意外的收获.然后看了些java系列文章,关于jvm参数配置.运行监控及性能 ...

  9. JAVA I/O流 之入门

    I/O流分类: 根据处理的数据类型不同 字节流 字符流 根据流向不同 输入流 输出流 根据功能不同 节点流:直接与数据源相连,读入或读出. 处理流:直接使用节点流,读写不方便,为了更快的读写文件,才有 ...

  10. hibernate多对一的操作解析

    在hibernate的关联操作中有很多关系,其中多对一关系是最常见的.我们看这两个表. 这里有部门表和员工表. 那么我们可以这么说一个部门可以有多个员工.这就是1对多的关系.这是我们站在部门表的角度上 ...