`
hilary009
  • 浏览: 3329 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

遍历sdcard的文件,用listview显示

阅读更多


package com.scope.view;


import java.io.File;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;


import com.scope.R;

import com.scope.util.FileOp;


import android.app.Activity;

import android.app.LauncherActivity;

import android.app.ListActivity;

import android.graphics.Path;

import android.os.Bundle;

import android.os.Environment;

import android.view.View;

import android.widget.AbsListView;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.TextView;


public class FileManagerActivity extends Activity {

private TextView file_path;

private ListView lv;

File path = Environment.getExternalStorageDirectory();

String root_path = path.getAbsolutePath();

List<Map<String, Object>> list;

Map<String, Object> map;

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.main);


file_path = (TextView) findViewById(R.id.file_path);

file_path.setText(root_path);


lv = (ListView) findViewById(R.id.list);

lv.setAdapter(getDeviceListAdapter(root_path));

lv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view,

int pos, long id) {

Map<String, Object>  item = (Map<String, Object>) parent.getItemAtPosition(pos);

String file_abs_path = (String) item.get("file_abs_path");

System.out.println("file_abs_path   " + file_abs_path);

File file = new File(file_abs_path);

if (!file.exists()) {

// finish();

return;

}

if(file.isDirectory()){

System.out.println("file_abs_pat" + file_abs_path);

lv.setAdapter(getDeviceListAdapter(file_abs_path));

file_path.setText(file_abs_path);

}else{

}

}

});

}

private List<Map<String, Object>> getFile(String file_path) {

list = new ArrayList<Map<String, Object>>();

File file = new File(file_path);

for (File files : file.listFiles()) {

map = new HashMap<String, Object>();

String file_abs_path = files.getAbsolutePath();

map.put("file_abs_path", file_abs_path);

if (files.isDirectory()) {

map.put("item_type", R.drawable.item_type_dir);

map.put("item_name", files.getName());

map.put("item_sel", R.drawable.item_img_nosel);

long file_date = files.lastModified();

String date = new SimpleDateFormat("yyyy/MM/dd HH:mm")

.format(new Date(file_date));

map.put("item_date", date + " | ");

// long file_size = file.length();

// map.put("item_size", file_size + " | ");

list.add(map);

} else {

map.put("item_name", files.getName());

map.put("item_type", FileOp.getFileTypeImg(files.getName()));

map.put("item_sel", R.drawable.item_img_nosel);

long file_date = files.lastModified();

String date = new SimpleDateFormat("yyyy/MM/dd HH:mm")

.format(new Date(file_date));

map.put("item_date", date + " | ");

long file_size = files.length();

map.put("item_size", FileOp.getFileSizeStr(file_size)+ " | ");

list.add(map);

}

}

return list;

}


private ListAdapter getDeviceListAdapter(String file_path) {

return new SimpleAdapter(FileManagerActivity.this, getFile(file_path),

R.layout.filelist_item, new String[] { "item_type",

"item_name", "item_sel", "item_size", "item_date" },

new int[] { R.id.item_type, R.id.item_name, R.id.item_sel,

R.id.item_size, R.id.item_date });

}

}

分享到:
评论

相关推荐

    读取SDcard Database并在Android ListView显示的处理流程

    综上所述,实现“读取SDcard Database并在Android ListView显示”的功能,需要理解Android的文件权限、SQLite数据库操作、ListView与Adapter的结合使用,以及优化UI性能的技巧。这些知识点对于Android开发者来说是...

    把sd卡中的文件显示到ListView中

    在这个特定的项目中,我们的目标是将SD卡中的MP3文件显示在一个ListView中。ListView是Android UI设计中常用的控件,它可以有效地展示长列表数据,通常用于文件目录浏览、联系人列表等场景。 首先,我们需要获取SD...

    file_test,有关android sdcard的访问,以及自定义listview

    这里,`getFileNamesFromSdCard()`是一个方法,它遍历SDCard并返回文件名列表。 自定义ListView时,还可以实现各种高级功能,比如添加点击事件、加载更多数据、使用头视图和脚部视图等。通过结合使用ListView和对...

    Android用ListView显示SDCard文件列表的小例子

    本例中,我们探讨了如何利用ListView显示SDCard(外部存储)上的文件列表。下面将详细介绍这个过程。 首先,我们需要获取SDCard上特定目录的文件列表。在Android中,`Environment.getExternalStorageDirectory()` ...

    android读取sdcard的txt文件,翻书的效果

    可以遍历SDCard根目录,通过文件扩展名过滤出TXT文件。 3. **文件读取**: 读取TXT文件内容通常使用`BufferedReader`或`Scanner`类。逐行读取文件内容,然后存储到适当的数据结构(如ArrayList)中,以便后续显示...

    文件浏览 打开sdcard文件夹。只显示文件夹和txt文件。过滤非txt文件。选择txt文件返回其名字。

    4. **文件选择与返回文件名**:在UI界面上,可以使用ListView、RecyclerView或者其他自定义视图来显示过滤后的文件列表。当用户选择一个TXT文件后,通过点击事件获取选中的文件名,并使用`File.getName()`方法获取不...

    android中sd卡文件浏览列表

    1. **获取文件信息**:使用`Environment.getExternalStorageDirectory()`方法获取SD卡根目录,然后遍历该目录下的所有文件和子文件夹。`java.io.File`类提供了一系列方法,如`listFiles()`用于获取目录下的文件和子...

    android开发中如何实现sdcard扫描

    接着,我们需要实现`readFile`方法,这是一个递归函数,用于遍历SDCard上的所有文件和子目录。这里我们先设定扫描路径为"/etc",实际应用中应替换为SDCard的根路径,通常是`Environment.getExternalStorageDirectory...

    android文件浏览器

    首先,Android文件浏览器的核心功能包括目录遍历、文件显示、文件选择以及基本的文件操作(如复制、移动、删除等)。为了实现这些功能,开发者需要熟悉以下几个关键知识点: 1. **Android权限管理**:在Android系统...

    android文件管理器源代码

    1. UI组件:文件管理器通常由ListView或RecyclerView展示文件和目录,用Adapter进行数据绑定。每个条目可能包含文件名、图标(表示文件类型)、大小、日期等信息。 2. 文件操作:包括创建、删除、重命名、复制、移动...

    Android编写简易文件管理模块

    3. 使用`ListView`展示文件和目录,自定义列表项布局。 4. 创建适配器绑定数据到`ListView`。 5. 实现路径栏显示当前目录,支持目录切换。 6. 监听`ListView`点击事件,实现文件选择功能。 通过以上步骤,你可以...

    android实现简单的文件浏览

    这样,在遍历文件时,只有满足条件的文件才会被显示。 5. **文件操作权限**:从Android 6.0(API级别23)开始,系统引入了运行时权限。如果应用需要读取外部存储(`sdcard`),需要在运行时请求`READ_EXTERNAL_...

    仿QQ的文件管理Demo

    4. **ListView与RecyclerView**:在UI设计中,文件管理器通常使用列表视图展示文件和目录。早期的Android应用可能使用ListView,但现代应用更多地采用RecyclerView,因为它更加灵活且性能优化。 5. **异步处理**:...

    Android代码-iconFile带图标的文件资源管理器.zip

    "iconFile带图标的文件资源管理器.zip"可能包含了一个实现这一功能的示例项目,它允许用户浏览、选择和管理手机或设备上的文件,并且针对不同类型的文件显示相应的图标。 首先,我们要理解Android中的文件系统结构...

    Android文件管理器源代码

    在Android系统中,文件管理器是一个至...总的来说,通过分析这个Android文件管理器的源代码,开发者可以学习到Android系统的文件操作、权限管理、UI设计以及Intent的使用,这些都是构建Android应用不可或缺的基础知识。

    Android手机SD卡文件浏览器

    5. **性能优化**:考虑到文件数量可能很大,遍历过程应避免一次性加载所有文件,而是采用异步加载、分页显示等策略,以减少内存消耗和提高响应速度。此外,可以利用缓存机制,将最近访问的文件信息存储起来,以提高...

    Android扫描音乐文件

    4. **ListView与Adapter**:为了在UI中显示扫描到的音乐文件,通常会使用`ListView`组件。结合自定义的`BaseAdapter`或`CursorAdapter`,可以将查询到的音乐信息映射到ListView的各个项,实现列表的动态加载。 5. *...

    android 文件搜索

    可以使用ListView、RecyclerView展示搜索结果,提供搜索框供用户输入关键词,并显示进度条以反馈搜索进度。 10. **搜索算法** 最后,对于复杂的搜索需求,可能需要实现更高级的搜索算法,如二分查找、Trie树或倒排...

Global site tag (gtag.js) - Google Analytics