android之ListView使用

android之ListView

ListView是android中比较常见并较为复杂的控件之一,它既有默认的模式,又可以实现自定义,通过该控件,可以使UI交互更加多样化,更加方便。

实现过程分为三步:

  1. 在activity的layout中设置ListView控件,设置控件Id为 list;
  2. 新建一个Layout的XML文件,在当中设置每一个条目的模式;
  3. 在代码中创建一个List的Hashmap对象,以条目名称为key,存入每一个条目中的内容;
  4. 创建一个SimpleAdapter对象,将创建的List对象作为资源,新建的Layout作为参数,还有一个字符串数组,与一个int型数组的参数。设置adapter即可。

代码如下:

/*
 * 在onResume方法中设置ListView
 */
protected void onResume() {
    super.onResume();
    List<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
//      通过工具栏FileUtils中的方法,得到本地文件的文件名与大小,显示在ListView中
    FileUtils fileUtils = new FileUtils();
    infos = new ArrayList<Mp3Info>();
    infos = fileUtils.getFileInfo("mp3/");
//  将从本地文件夹中得到的MP3信息存入list中
    for (Iterator<Mp3Info> iterator = infos.iterator(); iterator.hasNext();) {
        Mp3Info mp3Info = (Mp3Info) iterator.next();
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("mp3_name", mp3Info.getMp3name());
        map.put("mp3_size", mp3Info.getMa3size());
        list.add(map);
    }
//  设置这个simpleAdapter
    SimpleAdapter simpleAdapter = new SimpleAdapter(this, list, R.layout.mp3info_item,
            new String []{"mp3_name","mp3_size"}, new int [] {R.id.mp3_name,R.id.mp3_size});

    setListAdapter(simpleAdapter);
}

这是最简单的listView的使用方式,listView还可以设置更多的属性,条目里可以有button,imageView等各种控件,只要在设置adapter当中的那个布局文件中设定这些控件,然后在字符数组中写上这些控件的id,整型数组中依次写上这些控件在R文件中的编号就好。

简单的Layout文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="1dp"
android:paddingBottom="1dp">
<TextView
    android:id="@+id/mp3_name"
    android:layout_width="180dp"
    android:layout_height="30dp"
    android:textSize="20sp"/>
<TextView
    android:id="@+id/mp3_size"
    android:layout_width="180dp"
    android:layout_height="30dp"
    android:textSize="20sp"/>
</LinearLayout>

在listView中,每一个条目是可以有点击响应事件的,点击某个条目,类似于点击一个button,为其设置点击响应事件就可以了。

/**
 * ListView的点击响应事件,将点击的条目信息传递到新的播放界面的Activity中
 */
@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        Mp3Info mp3Info = infos.get(position);
        Log.i("Local", mp3Info.toString());

        Intent playerintent = new Intent();
        playerintent.putExtra("mp3Info", mp3Info);
        playerintent.setClass(LocalMp3ListActivity.this, PlayerActivity.class);
        startActivity(playerintent);
    }

}

复写ListView的onListItemClick的函数就可以了,函数传入的参数有点击的条目中的控件id,是哪个控件,还有该条目在ListView中的顺序。根据我们的需要选择合适的参数使用,就可以达到我们想要的响应目的。

<LinearLayout 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:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ListView
            android:id="@+id/android:list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="vertical"
            android:drawSelectorOnTop="false">

        </ListView>

    </LinearLayout>

</LinearLayout>

在主界面中设置的Layout。

时间: 2024-10-13 12:25:33

android之ListView使用的相关文章

android 安卓 listview 支持下拉刷新 上拉加载更多

[1]重写listView import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGrou

Android 设置ListView不可滚动 及在ScrollView中不可滚动的设置

http://m.blog.csdn.net/blog/yusewuhen/43706169 转载请注明出处: http://blog.csdn.net/androiddevelop/article/details/38815493 希望得到的效果是ListView不能滚动,但是最大的问题在与ListView Item还必有点击事件,如果不需要点击事件那就简单了,直接设置ListView.setEnable(false); 如果还需要点击事件,滚动与点击都是在ListView Touch处理机制

13、Android之ListView学习&#183;

1.XML文件中添加ListView (1)XML布局文件 <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_

Android学习---ListView的点击事件,simpleAdapter和arrayadapter的原理和使用 - Hi_Amos

如题,本文将介绍 listview的点击事件,simpleAdapter和arrayadapter的原理和使用. 1.ListView的注册点击事件 //注册点击事件 personListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { /** * * @param parent 当前ListView * @param view 代表当前被点击的条目 * @param position 当前条目的位置 * @p

Android实现ListView或GridView首行/尾行距离屏幕边缘距离

Android上ListView&GridView默认行都是置顶的,这样会很丑. 一般为了解决这个问题都会在首行或尾行加上一个隐藏的View,那样实在是太麻烦了.在网上看博客的时候突然看到这个属性真的很有用! 直接上关键属性: 设置ListView或GridView的android:clipToPadding = true, 然后通过paddingTop和paddingBottom设置距离就好了. 博客原文: http://www.cnblogs.com/xitang/p/3606578.htm

android的ListView

strings.xml <?xml version="1.0" encoding="utf-8"?> <resources>     <string name="app_name">ListView</string>     <string name="hello_world">Hello world!</string>     <string na

Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音

转载请注明出处:http://blog.csdn.net/xiaanming/article/details/12684155 前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己没有更新博客了,过完国庆到新公司报道,感觉还不错,就是现在住的地方离新公司有点远,地铁20站,伤不起啊,我每天早上7点多就要起床,然后屁颠屁颠的去挤地铁上班,晚上下班还要挤地铁,先不说路程远,车费一天就要10几块,我的银子啊,有坐龙华线去上班的深圳程序员不?听说那条线上班高峰期很挤?我没在上班高峰期坐过那趟车,我

android之ListView,详细介绍实现步骤,举例,自定义listview适配器

android之ListView,详细介绍实现步骤,举例,自定义listview适配器 09. 四 / android基础 / 没有评论 本文来源于www.ifyao.com禁止转载!www.ifyao.com android中如何使用listView是比较重要的,因为很多时候都需要将数据库中的数据以列表显示, 具体使用步骤:大体 1,建立一个item.xml文件,此布局文件布局布局如何具体显示列表中的每一个条目 2,在要使用listview的界面中添加listview控件. 3,activit

android的listview加checkbox实现单保存checkbox的勾选信息

最近做一个项目时想要增加安卓端的一个功能,就是增加一个activity上面有很多checkbox的勾选信息,然后可以给人选择多选框,看起来还算很简单..但是真正做起来就有很多麻烦了.. 虽然我对安卓有点了解,以前也看过一些代码,但都是看别人的代码,看代码当然简单啦,这下要全部自己写,这下有点棘手了,一开始真是无从下手啊,后来去网上查了一下,觉得有个人的写法不错,就是用listview导入adapter的布局这样子,于是我就照着他的代码的原型开始改了起来. 改了N久,终于改的有点样子了,其中也花了

Android:ListView和适配器的使用

ListView作用:将数据填充到布局 实例:下载>> Listview与适配器ArrayAdapter配合使用,ArrayAdapter比较简单,但它只能用于显示文字.布局文件可以自己写,也可以用系统的. 在布局文件中加入一个ListView控件: <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wra