Android ListView组件详解及示例代码

Android 列表组件 ListView

列表组件是开发中经常用到组件,使用该组件在使用时需要为它提供适配器,由适配器提供来确定显示样式和显示数据。

下面看一个例子:

新建一个项目Lesson8_ListViewTest,Activity name是MainListViewTest 。

MainListViewTest.java的代码是:

package android.basic.lesson8;

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 MainListViewTest extends Activity {

  /** Called when the activity is first created. */
    @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //找到ListView
    ListView lv= (ListView)findViewById(R.id.ListView01);

    //定义数组
    String[] data ={
            "Android开发基础篇 第一讲",
            "Android开发基础篇 第二讲",
            "Android开发基础篇 第三讲",
            "Android开发基础篇 第四讲",
            "Android开发基础篇 第五讲",
            "Android开发基础篇 第六讲",
            "Android开发基础篇 第七讲",
            "Android开发基础篇 第八讲",
            "Android开发基础篇 第九讲"
            };

    //为ListView提供数组适配器
    lv.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,data));

    //为ListView设置列表项点击监听器
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Toast.makeText(getApplicationContext(),
                        "您点击的是:"+((TextView) view).getText(), Toast.LENGTH_SHORT).show();
            }
        });

        //为ListView设置长按监听器
        lv.setOnItemLongClickListener(new OnItemLongClickListener(){

            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Toast.makeText(getApplicationContext(),
                        "您长按的是:"+((TextView) view).getText(), Toast.LENGTH_SHORT).show();
                return false;
            }
        });
  }
}

其中

1、 android.R.layout.simple_list_item_1 是一个Android系统内置的ListView布局方式;我们可以自定义ListView的布局方式。

2、OnItemClickListener是个接口,用new创建一个接口的做法是不是有点怪?实际上这里是建立了一个匿名类,来满足setOnItemClickListener()方法的参数需求。

3、Toast.makeText().show() 的写法大家可以记一下,可以创造出一个气泡提示效果;Toast的具体用法可以看这里。
main.xml的代码是:

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

好,现在看一下运行效果:

点击其中一个列表项的时候会触发Item的onClick事件,弹出一个气泡提示框;在一个选项上长时间按着也会触发LongClick事件,弹出另一个气泡提示框。

上面的例子用到了系统自带的android.R.layout.simple_list_item_1布局,使用的是在Java代码中的数组做数据源;我们在接下来的例子里使用一次XML做数据源,再使用一下系统自带的android.R.layout.simple_list_item_2布局,让我们看看他们的表现有什么不同。

以上就是对Android ListView 的介绍,后续继续补充相关知识,谢谢大家对本站的支持!

(0)

相关推荐

  • Android App界面的ListView布局实战演练

    一.继承listActivity.使用arrayAdapter 使用ListView和arrayAdapter布局,是ListView布局中最为简单的一种,首先我们会建立一个组件用来显示数据,例如main.xml <?xml version="1.0" encoding="utf-8"?> <!-- 主界面本身就是一个显示组件 --> <TextView xmlns:android="http://schemas.androi

  • Android自定义Adapter的ListView的思路及代码

    在开发中,我们经常使用到ListView这个控件.Android的API也提供了许多创建ListView适配器的快捷方式.例如ArrayAdapter.SimpleAdapter和SimpleCursorAdapter等.但你是否发现,如果采用这些系统自带的适配器,对于事件的响应只能局限在一个行单位.假设一行里面有一个按钮和一个图片控件,它们之间的响应操作是不一样的.若采用系统自带的适配器,就不能精确到每个控件的响应事件.这时,我们一般采取自定义适配器来实现这个比较精确地请求. ListView

  • android动态布局之动态加入TextView和ListView的方法

    本文实例讲述了android动态布局之动态加入TextView和ListView的方法.分享给大家供大家参考.具体实现方法如下: package org.guoshi; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.guoshi.adapter.ImageAndTextAdapter; import android.app.

  • Android仿QQ好友列表分组实现增删改及持久化

    Android自带的控件ExpandableListView实现了分组列表功能,本案例在此基础上进行优化,为此控件添加增删改分组及子项的功能,以及列表数据的持久化. Demo实现效果: GroupListDemo具体实现: ①demo中将列表页面设计为Fragment页面,方便后期调用:在主界面MainActivity中动态添加GroupListFragment页面: MainActivity.java package com.eric.grouplistdemo; import android

  • Android实现在一个activity中添加多个listview的方法

    本文实例讲述了Android实现在一个activity中添加多个listview的方法.分享给大家供大家参考,具体如下: listview的id一般是这样的android:id="@id/android:list".请注意,这时的Activity是ListActivity,在这样的Activity中到目前为止,我没有发现添加多个activity的方法.要添加多个listview,所用的Activity要是一般的Activity,listview的id也要自己定义,改成android:i

  • android listview优化几种写法详细介绍

    这篇文章只是总结下getView里面优化视图的几种写法,就像孔乙己写茴香豆的茴字的几种写法一样,高手勿喷,勿笑,只是拿出来分享,有错误的地方欢迎大家指正,谢谢. listview Aviewthatshowsitemsinaverticallyscrollinglist. 一个显示一个垂直的滚动子项的列表视图在android开发中,使用listview的地方很多,用它来展现数据,成一个垂直的视图.使用listview是一个标准的适配器模式,用数据--,界面--xml以及适配器--adapter,

  • Android中ListView Item布局优化技巧

    本文实例讲述了Android中ListView Item布局优化技巧.分享给大家供大家参考,具体如下: 之前一直都不知道ListView有多种布局的优化方法,只能通过隐藏来实现,自己也知道效率肯定是很低的,但是也不知道有什么方法,这些天又查了一些资料,然后知道 其实google早就帮我们想好了优化方案了. 假设你的ListView Item有三种布局样式的可能:就比如很简单的显示一行字,要靠左,居中,靠右. 这时我们就可以在BaseAdapter里面重写两个方法: private static

  • Android系统联系人全特效实现(上)分组导航和挤压动画(附源码)

    记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进行分组,并在界面的最顶端始终显示一个当前的分组.如下图所示:  最让我感兴趣的是,当后一个分组和前一个分组相碰时,会产生一个上顶的挤压动画.那个时候我思考了各种方法想去实现这种特效,可是限于功夫不到家,都未能成功.如今两年多过去了,自己也成长了很多,再回头去想想这个功能,突然发现已经有了思路,于是立刻记录下来与大家分享. 首先讲一下需要提前了解的知识点,这里我们最需要用到的就是SectionInde

  • Android ListView的OnItemClickListener详解

    我们在使用ListView的时候,一般都会为ListView添加一个响应事件android.widget.AdapterView.OnItemClickListener.本文主要在于对OnItemClickListener的position和id参数做详细的解释,我相信有些人在这上面走了些弯路. 先来看一下官方的文档 position The position of the view in the adapter. id The row id of the item that was click

  • android开发教程之listview使用方法

    首先是布局文件,这里需要两个布局文件,一个是放置列表控件的Activity对应的布局文件 main.xml,另一个是ListView中每一行信息显示所对应的布局  list_item.xml    这一步需要注意的问题是ListView 控件的id要使用Android系统内置的 android:id="@android:id/list"   [注意形式] main.xml 复制代码 代码如下: <?xml version="1.0" encoding=&quo

  • Android实现的ListView分组布局改进示例

    本文实例讲述了Android实现的ListView分组布局改进方法.分享给大家供大家参考,具体如下: 由于是在网上转载的一篇文章,在这里就不多说废话了,首先看一下最终的效果图: 然后是实现该ListView布局的主要代码: 1.程序主界面 SeparateListView.java package whu.iss.wuxianglong; import java.util.ArrayList; import java.util.List; import android.app.Activity;

随机推荐