android之ListView使用
2015-06-06 17:39
357 查看
android之ListView
ListView是android中比较常见并较为复杂的控件之一,它既有默认的模式,又可以实现自定义,通过该控件,可以使UI交互更加多样化,更加方便。
实现过程分为三步:
在activity的layout中设置ListView控件,设置控件Id为 list;
新建一个Layout的XML文件,在当中设置每一个条目的模式;
在代码中创建一个List的Hashmap对象,以条目名称为key,存入每一个条目中的内容;
创建一个SimpleAdapter对象,将创建的List对象作为资源,新建的Layout作为参数,还有一个字符串数组,与一个int型数组的参数。设置adapter即可。
代码如下:
这是最简单的listView的使用方式,listView还可以设置更多的属性,条目里可以有button,imageView等各种控件,只要在设置adapter当中的那个布局文件中设定这些控件,然后在字符数组中写上这些控件的id,整型数组中依次写上这些控件在R文件中的编号就好。
简单的Layout文件
在listView中,每一个条目是可以有点击响应事件的,点击某个条目,类似于点击一个button,为其设置点击响应事件就可以了。
复写ListView的onListItemClick的函数就可以了,函数传入的参数有点击的条目中的控件id,是哪个控件,还有该条目在ListView中的顺序。根据我们的需要选择合适的参数使用,就可以达到我们想要的响应目的。
在主界面中设置的Layout。
ListView是android中比较常见并较为复杂的控件之一,它既有默认的模式,又可以实现自定义,通过该控件,可以使UI交互更加多样化,更加方便。
实现过程分为三步:
在activity的layout中设置ListView控件,设置控件Id为 list;
新建一个Layout的XML文件,在当中设置每一个条目的模式;
在代码中创建一个List的Hashmap对象,以条目名称为key,存入每一个条目中的内容;
创建一个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。
相关文章推荐
- android 按钮切换activity和打开网页
- Android Fragment嵌套使用问题总结
- Android 在锁屏界面添加未读短信和电话提醒
- Android的开发学习
- Android常用工具类
- Android实现首次点击返回键提示信息,第二次点击退出应用
- Android Native/Tombstone Crash Log 详细分析
- 在Android中探秘建造者模式
- Android 广播的生命周期
- Android系统中的广播(Broadcast)机制简要介绍和学习计划
- 【转】Android 平台下使用 i2c-tools
- Android中Bitmap和Drawable
- 关于Fragment API版本兼容问题
- 1第一个Android应用程序
- android百度地图定位,点击给定经纬度的某点进行弹窗
- androidstudio中出现Rendering Problems,字体太小,显示不了组件问题
- 安卓showTime and showDate 两个按钮,并在xml中写入相应的onClick方法
- Android之NDK开发
- Android 部分属性学习
- Android 学习笔记 Service服务与远程通信...(AIDL)