1)效果图如下


2)关键代码如下

package com.example.filedemo;import java.io.File;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;import android.view.View;public class MainActivity extends Activity {private ListView listView1=null;private Button homeButton=null;private Button previousButton=null;private TextView pathTextView=null;/** rootPathString 根目录 * itemsList 存储文件名* pathsList 存储文件路径* */private String rootPathString="/";private List<String> itemsList=null;private List<String> pathsList=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView1=(ListView)findViewById(R.id.listView1);/*进入单击目录*/listView1.setOnItemClickListener(new ListView.OnItemClickListener(){public void onItemClick(AdapterView<?> parent,View view,int position,long arg3){/*获取单击文件*/File file=new File(pathsList.get(position));if(file.isDirectory()){getFiles(pathsList.get(position));}}});/*进入根目录*/homeButton=(Button)findViewById(R.id.homeButton);homeButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {getFiles(rootPathString);}});/*进入上一级目录*/previousButton=(Button)findViewById(R.id.PreviousButton);previousButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {String currentPathString=pathTextView.getText().toString();if(!currentPathString.equals(rootPathString)){File currentFile=new File(currentPathString);getFiles(currentFile.getParent());}}});pathTextView=(TextView)findViewById(R.id.pathTextView);getFiles(rootPathString);}/** 获取当前目录文件* */private void getFiles(String filePathString){/*显示当前路径*/pathTextView.setText(filePathString);/*显示当前目录文件*/itemsList=new ArrayList<String>();pathsList=new ArrayList<String>();File currentFile=new File(filePathString);File[] files=currentFile.listFiles();if(files!=null&&files.length>0){for(int i=0;i<files.length;i++){File file=files[i];if(file.isDirectory()){itemsList.add(file.getName()+"(dir)");}else {itemsList.add(file.getName()+"(file)");}pathsList.add(file.getPath());}}ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, itemsList);listView1.setAdapter(adapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


更多相关文章

  1. AndroidManifest.xml文件详解(activity)(一)
  2. Fragment的使用简介【Android】
  3. android用intent打开各种文件
  4. 用contentResolver+ListView+mediaPlayer实现简单Android音乐播
  5. android studio 各种令人费解的问题
  6. Unity3D Android播放视频
  7. Android(安卓)Log Analysis bugreport
  8. android http请求并解析返回的xml
  9. NPM 和webpack 的基础使用

随机推荐

  1. Python程序员招聘市场简要报告
  2. MySQL主从不同步问题解决
  3. 从解决开发环境问题聊聊为什么要看源码
  4. Dubbo和JDK的SPI究竟有何区别?
  5. 扬眉吐气!Python力压Java,成为第二编程语言
  6. android 使用XmlResourceParser 解析XML
  7. 源码解析 | Dubbo-SPI和IoC的前世今生
  8. 源码解析 | Dubbo-SPI和AOP的前世今生
  9. 还有这种操作?浅析为什么要看源码
  10. Android(安卓)ActionBar的源代码分析(一)