博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单实现浏览Android SD卡中的文件
阅读量:6714 次
发布时间:2019-06-25

本文共 2734 字,大约阅读时间需要 9 分钟。

hot3.png

----Main.java

public class Main extends Activity {	private TextView textView;	private Button button;	private ListView listView;	public File currentParentFile;	public File[] currentFiles;	public static  String sdcardDir ;	static {		try {			//sd卡的路径			sdcardDir = Environment.getExternalStorageDirectory().getCanonicalPath();		} catch (IOException e) {			e.printStackTrace();		}	}	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		textView = (TextView) findViewById(R.id.textView1);		button = (Button) findViewById(R.id.button1);		listView = (ListView) findViewById(R.id.listView1);		File root = new File(sdcardDir);		if(root.exists()){			currentParentFile = root;			currentFiles = root.listFiles();			updateListView(currentFiles);		}				listView.setOnItemClickListener(new OnItemClickListener() {			@Override			public void onItemClick(AdapterView
 parent, View view, int position, long id) { if (currentFiles[position].isFile()) return; File[] tmp = currentFiles[position].listFiles(); if (tmp == null || tmp.length == 0) { Toast.makeText(Main.this, "当前路径无效,或没有文件", Toast.LENGTH_SHORT).show(); } else { currentParentFile = currentFiles[position]; currentFiles = tmp; updateListView(currentFiles); } } }); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { if (!currentParentFile.getCanonicalPath().equals( sdcardDir)) { currentParentFile = currentParentFile.getParentFile(); currentFiles = currentParentFile.listFiles(); updateListView(currentFiles); } else return; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } private void updateListView(File[] files) { List
> itemps = new ArrayList
>(); for (int i = 0; i < files.length; i++) { Map
 listItem = new HashMap
(); if (files[i].isDirectory()) listItem.put("icon", R.drawable.folder); else listItem.put("icon", R.drawable.file); listItem.put("name", files[i].getName()); itemps.add(listItem); } SimpleAdapter simpleAdapter = new SimpleAdapter(this, itemps, R.layout.listitem, new String[] { "icon", "name" }, new int[] { R.id.imageView1, R.id.text }); listView.setAdapter(simpleAdapter); try { textView.setText("当前路径为:"+currentParentFile.getCanonicalPath()); } catch (IOException e) { e.printStackTrace(); } }}

布局文件----main.xml

    
    
    
    

效果:

224154_CRyn_1413857.png

listview的每一条的布局:

---listitem.xml

    
    

demo运行效果:

224521_sK2s_1413857.png

转载于:https://my.oschina.net/xlazhh/blog/354724

你可能感兴趣的文章
数据库优化案例——————某知名零售企业ERP系统
查看>>
计算月份差方法封装
查看>>
setsockopt 设置socket 详细用法
查看>>
抽象工厂不同接口反射
查看>>
hdu1052
查看>>
服务器端推送技术
查看>>
python开发工具
查看>>
Home Assistant系列 -- 自动语音播报天气
查看>>
Hyberledger-Fabric 1.00 RPC学习(1)
查看>>
SDNU 1450.报时助手
查看>>
BZOJ 4144 Dijkstra+Kruskal+倍增LCA
查看>>
阻塞与非阻塞,同步与异步
查看>>
HTML段落自动换行的样式设置
查看>>
Android实现左右滑动指引效果
查看>>
html里frame导航框架实现方法
查看>>
shell编程系列5--数学运算
查看>>
在 UWP 应用中创建、使用、调试 App Service (应用服务)
查看>>
Active MQ C#实现
查看>>
C#实现秒表程序
查看>>
P4377 [USACO18OPEN]Talent Show
查看>>