/********************************************************************************************
* author:conowen@大钟
* E-mail:conowen@hotmail.com
* http://blog.csdn.net/conowen
* 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。
********************************************************************************************/


SimpleCursorAdapter 方式请看http://blog.csdn.net/conowen/article/details/7306545


1、Listview简述

A view that shows items in a vertically scrolling list. The items come from theListAdapter associated with this view.

简单来说就是,创建Listview,然后给数值就行了。

而这些数值来源有三种方式:ArrayAdapter、SimpleAdapter、SimpleCursorAdapter


第一种是最简单的一种Adapter,是字符串数值,只能在ListView显示出文本信息。

第二种是一种自定义的数据来源,要自定义布局方式,可以放置图片,按钮,文本之类的。

第三种数据来源于数据库。


本文为第一种方式,ArrayAdapter,其他两项的方法都差不多,主要是adapter不同。


2、使用ListView步骤

首先创建Listview组件,然后调用Listview.ArrayAdapter()方法,设置Adapter。


通过调用setOnItemClickListener()接口方法,设置“点击”listview某一项的监听事件。

通过调用setOnItemLongClickListener()接口方法,设置“长按”listview某一项的监听事件。


需要说明的是,当设置匿名内部类new OnItemClickListener()时,eclipse不会自动载入复写函数,要点击左边的错误提示,然后Add unimplemented methods,才能载入复写函数onItemClick()。


mylistview.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {// TODO Auto-generated method stub}});

关于onItemClick方法,下面详细说说。( 以下是官方的说明,参数命名不同而已,类型都是一样的。arg0=parent,arg1=view,arg2=position,arg3=id)

public abstract void onItemClick(AdapterView<?> parent,View view, int position, long id)

Since: API Level 1

Callback method to be invoked when an item in this AdapterView has been clicked.

Implementers can call getItemAtPosition(position) if they need to access the data associated with the selected item.

//当点击listview某一项时,这个回调方法就会被调用。

Parameters
parent The AdapterView where the click happened.
view The view within the AdapterView that was clicked (this will be a view provided by the adapter)
position The position of the view in the adapter.
id The row id of the item that was clicked.


主要说说最后三个参数,

view——————是你点击的Listview的某一项的内容,来源于adapter。如用((TextView)arg1).getText(),可以取出点击的这一项的内容,转为string类型。

position————是adapter的某一项,如点击了listview第2项,而第2项对应的是adapter的第2个数值,那此时position的值就为1了。

如对应adapter的第3个数值,那此时position的值就为2了。

id———————id的值为点击了Listview的哪一项对应的数值,点击了listview第2项,那id就等于1。

注:这些数值都是从0开始的。

/*author:conowen * date:2012.2.26 */package com.conowen.listview;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class ListviewActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ListView lv = (ListView) findViewById(R.id.lv);String[] data = { "windows", "linux", "ios", "android", "wp7","Symbian" };// 定义adapterlv.setAdapter(new ArrayAdapter<String>(this,// 把adapter绑定到listview里面android.R.layout.simple_expandable_list_item_1, data));// 点击事件lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubToast.makeText(ListviewActivity.this, "你点击的是第" + arg3 + "项",Toast.LENGTH_SHORT).show();// 取出所点击的那一项的id}});// 长按事件lv.setOnItemLongClickListener(new OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {// TODO Auto-generated method stubToast.makeText(ListviewActivity.this,((TextView) arg1).getText(), Toast.LENGTH_LONG).show();// 取出点击listview某一项的内容return false;}});}}




更多相关文章

  1. android Gide加载webp图片方法
  2. Android Battery一些信息获取方法
  3. Android 图片缩放,手势,事件
  4. Android回调事件传播-android学习之旅(四十五)
  5. CheckBox android:paddingLeft 不兼容问题解决方法
  6. android http-post方法简单实现
  7. Android 后台线程调用前台线程的几种方法
  8. Android WebView 使用方法,可以解决web视频播放层级问题。
  9. Android 实现分享功能的方法 分类: Android ...

随机推荐

  1. Android硬件抽象层(HAL)深入剖析(一)
  2. Android Layout布局文件里的android:layo
  3. android Uri详解
  4. android中shape绘制背景图片
  5. 《Android Dev Guide》系列教程10:用户界
  6. Android的adb命令介绍
  7. 一个让你掌握Android所有控件的Demo
  8. 【Android】Android 手机忘记锁屏密码的
  9. Text-to-speech 入门与进阶学习笔记(andr
  10. Android ShareUserId 使用总结