`
huangbq
  • 浏览: 30276 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ListView初体验

阅读更多

初学android,感觉ListView是一个经常用到的控件,ListView的实现感觉相当的麻烦,对于初学者,对于很好的实现ListView感觉很茫然,从初学者的视角,参考网络上的一些关于ListView的例子,(这里特别感谢Ray's blog 网址:http://rayleung.iteye.com/,在他的博客中学到很多东西。),加上自己作为初学者的一些简单总结,完成本文,希望对初学者有所帮助。 这里先说说ListView的实现: ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。 实现步骤: 1.准备ListView要显示的数据 ; 2.使用 一维或多维 动态数组 保存数据; 3.构建适配器 , 简单地来说, 适配器就是 Item数组 , 动态数组 有多少元素就生成多少个Item; 3.把 适配器 添加到ListView,并显示出来。 该程序效果是实现一个ListView,ListView里面有标题,内容和图片,并加入点击和长按响应。 接下来,看看本文代码所实现的ListView:

1.首先在xml里面定义一个listview.xml文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

    <TextView  

             android:layout_width="fill_parent"

             android:layout_height="wrap_content" 

             android:text="@string/listview"/>

 

   <ListView android:id="@+id/listview"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            >

   </ListView>    

</LinearLayout> 

2.定义ListView每个条目的Layout,listview_items.xml的代码如下,listview_items.xml用于设计ListView的Item:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 

android:id="@+id/RelativeLayout01" 

android:layout_width="fill_parent" 

xmlns:android="http://schemas.android.com/apk/res/android" 

android:layout_height="wrap_content" 

android:paddingBottom="4dip" 

android:paddingLeft="12dip"

android:paddingRight="12dip">

<ImageView 

android:paddingTop="12dip"

android:layout_alignParentRight="true"

android:layout_width="wrap_content" 

android:layout_height="wrap_content" 

android:id="@+id/ItemImage"

/> 

<TextView 

    android:text="TextView01" 

    android:layout_height="wrap_content" 

    android:textSize="20dip" 

    android:layout_width="fill_parent" 

    android:id="@+id/ItemTitle"

    />

<TextView 

android:text="TextView02" 

android:layout_height="wrap_content" 

android:layout_width="fill_parent" 

android:layout_below="@+id/ItemTitle" 

android:id="@+id/ItemText"

/>

</RelativeLayout>

 3.最后就是JAVA的源代码:ListViewActivity类

package com.google.android.test;

 

import java.util.ArrayList;

import java.util.HashMap;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.ContextMenu;

import android.view.View;

import android.view.MenuItem;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.View.OnCreateContextMenuListener;

import android.widget.AdapterView;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.AdapterView.OnItemClickListener;

 

public class ListViewActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.listview);

//绑定layout里面的ListView

ListView list=(ListView)findViewById(R.id.listview);

//生成动态数组,加入数据 

ArrayList<HashMap<String, Object>> listItem=new ArrayList<HashMap<String, Object>>();

for(int i=0;i<10;i++){

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

map.put("ItemImage", R.drawable.icon);//图像资源的ID

map.put("ItemTitle", "第"+i+"项,可以把它当做标题");

map.put("ItemText", "这里是我的"+i+"项的内容,可以写入你的内容!");

listItem.add(map);

}

//生成适配器的Item和动态数组对应的元素

SimpleAdapter listItemAdapter=new SimpleAdapter(ListViewActivity.this,

//数据源 

listItem,

///ListItem的XML实现  

R.layout.listview_items,

//动态数组与ImageItem对应的子项 

new String[]{"ItemImage","ItemTitle","ItemText"},

//ImageItem的XML文件里面的一个ImageView,两个TextView ID  

new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText});

//添加并且显示 

list.setAdapter(listItemAdapter); 

//注册监点击听器

list.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,

long arg3) {

// TODO Auto-generated method stub

setTitle("点击"+arg2+"个项目");

}

});

//添加长按点击

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

// TODO Auto-generated method stub

menu.setHeaderTitle("长按按钮-ContextMenu");

menu.add(0,0,0,"弹出长按钮菜单子菜单1");

menu.add(0,0,0,"弹出长按钮菜单子菜单2");

}

});

}

//长按钮菜单响应函数

@Override

public boolean onContextItemSelected(MenuItem item){

setTitle("点击了长按钮菜单里的第"+item.getItemId()+"个项目");

return super.onContextItemSelected(item);

}

 

}


分享到:
评论

相关推荐

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

    Google+Android+SDK开发范例大全

    1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!...

    Google Android SDK开发范例大全的目录

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 ...

    Google Android SDK 开发范例大全01

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

    Google Android SDK 开发范例大全02

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

    Google Android sdk 开发范例大全 部分章节代码

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

    Google Android SDK开发范例大全(完整版)

    第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机...

Global site tag (gtag.js) - Google Analytics