1获取根目录下的文件 File file = new File(“/”);
2把获取得的文件依次添加到ArrayAdapter中,然后setAdapter真是相当的简单
3为listActivity设置监听器,并启动自己所在的activity,传过去的值为被点击的文件的path
OVER~
package com.example.huanghanqing.filebrowser; import android.app.Activity; import android.app.ListActivity; import android.content.Intent; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import java.io.File; public class MainActivity extends ListActivity { ArrayAdapter<ESFile> adapter = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String dir = getIntent().getStringExtra("data"); if (dir == null) { dir = "/"; } File file = new File(dir); File[] chlidren = file.listFiles(); adapter = new ArrayAdapter<ESFile>(this,android.R.layout.simple_list_item_1); for (File f :chlidren ) { adapter.add(new ESFile(f)); } setListAdapter(adapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { ESFile file = adapter.getItem(position); if (file.getFile().isDirectory()) { Intent i = new Intent(this,MainActivity.class); i.putExtra("data", file.getFile().getAbsolutePath()); startActivity(i); } super.onListItemClick(l, v, position, id); } }
package com.example.huanghanqing.filebrowser; import java.io.File; /** * Created by huanghanqing on 2016/2/20. */ public class ESFile { private File file = null; public ESFile(File f) { file = f; } public File getFile(){ return file; } public String toString(){ if (getFile()==null) { return ""; } return String.format("[%s]%s",getFile().isDirectory()?"DIR":"File" , getFile().getName()); //return getFile().isDirectory()?"DIR":"File" + getFile().getName(); } }