ListActivity使用的一些学习笔记
来源:互联网 发布:通达信老鸭头主图源码 编辑:程序博客网 时间:2024/05/22 02:07
“本文主要作为学习ListActivity的一些学习笔记,好好学习天天向上”
程序测试背景:SDCard根目录下存在目录“music/”,内有一定数量的文件
程序功能:将“music/”目录下的内容通过ListActivity显示出来
程序内容:
DataInfomations.java——主要用于存储文件数据
DownFile.java——主要用于从sdcard查看文档,生成文档目录
MyList.java——处理目录内容,控制显示到list_layout.xml中(重要)
list_item.xml——控制每个文件的显示方法
list_layout.xml——主要UI,综合显示list_item.xml
源码云盘下载地址:http://pan.baidu.com/share/link?shareid=3003921281&uk=640016215
程序源码:
DataInfomations.java——主要用于存储文件数据
package com.example.testxml;public class DataInfomations {private String name;private String size;public DataInfomations(String name, String size) {super();this.name = name;this.size = size;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSize() {return size;}public void setSize(String size) {this.size = size;}@Overridepublic String toString() {return "DataInfomations [name=" + name + ", size=" + size + "]";}public DataInfomations() {super();// TODO Auto-generated constructor stub}}
DownFile.java——主要用于从sdcard查看文档,生成文档目录
package com.example.testxml;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import android.os.Environment;public class DownFile {private String SDPATH;public String getSDPATH() {return SDPATH;}public DownFile() {//得到当前外部存储设备的目录// /SDCARDSDPATH = Environment.getExternalStorageDirectory() + "/";}/** * 在SD卡上创建文件 * * @throws IOException */public File creatSDFile(String fileName) throws IOException {File file = new File(SDPATH + fileName);file.createNewFile();return file;}/** * 在SD卡上创建目录 * * @param dirName */public File creatSDDir(String dirName) {File dir = new File(SDPATH + dirName);dir.mkdir();return dir;}/** * 判断SD卡上的文件夹是否存在 */public boolean isFileExist(String fileName){File file = new File(SDPATH + fileName);return file.exists();}/** * 将一个InputStream里面的数据写入到SD卡中 * @注意 path参数后应加上‘/’ */public File write2SDFromInput(String path,String fileName,InputStream input){File file = null;OutputStream output = null;try{creatSDDir(path);file = creatSDFile(path + fileName);output = new FileOutputStream(file);byte buffer [] = new byte[4*1024];int temp;while((temp = input.read(buffer)) != -1){output.write(buffer, 0, temp);}output.flush();}catch(Exception e){e.printStackTrace();}finally{try{output.close();}catch(Exception e){e.printStackTrace();}}return file;}/** * 读取SDcard中的文件 */public List<DataInfomations> getSDcard(String Folder){boolean check = isFileExist(Folder);if(check){List<DataInfomations> list = new ArrayList<DataInfomations>();File file = new File(SDPATH + Folder);//File.listFiles()的作用:将目录内的文件以数组的方式返回File [] files = file.listFiles();//通过files[]定义list中各对象的值for (int i = 0; i < files.length; i++) {DataInfomations dataInfomations = new DataInfomations();dataInfomations.setName(files[i].getName());dataInfomations.setSize(files[i].length() + "");list.add(dataInfomations);}//返回结果return list;}else {List<DataInfomations> list = new ArrayList<DataInfomations>();return list;}}}
MyList.java——处理目录内容,控制显示到list_layout.xml中(重要)
package com.example.testxml;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import android.os.Bundle;import android.widget.SimpleAdapter;import android.app.ListActivity;public class MyList extends ListActivity {//listmap作为SimpleAdapter的参数显示在本ListActivity的UI中List<HashMap<String, String>> listmap = new ArrayList<HashMap<String,String>>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.list_layout);List<DataInfomations> list = new ArrayList<DataInfomations>();//通过DownFile().getSDcard("music/")获取目标目录的内容list = new DownFile().getSDcard("music/");//通过list的值定义listmap,目录内每个文件对应一个Hashmap被加入for (Iterator<DataInfomations> iterator = list.iterator(); iterator.hasNext();) {DataInfomations dataInfomations = (DataInfomations) iterator.next();HashMap<String, String> map = new HashMap<String, String>();map.put("name", dataInfomations.getName());map.put("size", dataInfomations.getSize());listmap.add(map);}SimpleAdapter simpleAdapter = new SimpleAdapter(MyList.this, listmap,R.layout.list_item, new String[]{"name","size"}, new int[]{R.id.name,R.id.size} );setListAdapter(simpleAdapter);}}
list_item.xml——控制每个文件的显示方法
<?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="vertical" > <!-- 注意此处两个TextView的id必须设置 --> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" /> <TextView android:id="@+id/size" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="12sp" /></LinearLayout>
list_layout.xml——主要UI,综合显示list_item.xml
<?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="vertical" android:paddingLeft="8dp" android:paddingRight="8dp" > <!-- 注意此处id必须如此设置,具体原因见开发者文档(本人也不太懂-_-#) --> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#00FF00" android:drawSelectorOnTop="false" /> <!-- 这个TextView可有可无,主要用于当内容为空时的显示,注意id也必须如此 --> <TextView android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0000" android:text="@string/no_data" /></LinearLayout>
最后再附上效果图
- ListActivity使用的一些学习笔记
- android笔记--简单的listactivity的使用
- ListActivity学习笔记
- 官方NotePad实例学习--ListActivity的使用
- ListActivity的使用
- ListActivity的使用介绍
- ListActivity的使用
- ListActivity的使用
- ListActivity的使用
- ListActivity的使用
- ListActivity的使用
- ListActivity 的使用
- ListActivity的使用
- ListActivity实现列表学习笔记
- 关于ListActivity的一些总结
- Android学习笔记(5)-关于ListActivity的简单体验
- Android学习笔记(5)-关于ListActivity的简单体验
- Android学习笔记(5)-关于ListActivity的简单体验
- 2013.10.05
- 1到10,逆序输出
- 电子元器件选型
- Java编程中中文乱码问题的研究及解决方案
- linux学习:设备系统在linux系统中的文件名
- ListActivity使用的一些学习笔记
- 选择罗氏线圈测量三相交流电流1KA,频率为0至1KHZ
- 二叉树和最大的子树
- TortoiseSVN使用方法
- 【leetcode】Construct Binary Tree from Preorder and Inorder Traversal
- 动作的回调方式
- Leetcode: Word Break
- Ubuntu 中安装svn服务器
- Hack写法