package com.cuizheng.read;
/*
* author Cuizheng
*/
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class FileList extends AppCompatActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.local);
findvied();
getFilesDir(rootPath);
onclicks();
}
private String rootPath="/storage/sdcard0";
private ListView listV;
private List<String> items=null;
private List<String> paths=null;
private TextView text;
private void findvied() {
// TODO Auto-generated method stub
listV=(ListView) findViewById(R.id.listV);
text=(TextView) findViewById(R.id.text);
}
//文件遍历并显示
public void getFilesDir(String filePath) {
// TODO Auto-generated method stub
items=new ArrayList<String>();
paths=new ArrayList<String>();
text.setText("当前路径"+filePath);
File file=new File(filePath);
File [] listFile=file.listFiles();
String upPath=file.getParent();
if(!filePath.equals(rootPath)){
items.add("up");
paths.add(upPath);
}
for(File f:listFile){
if(!f.getName().equals(".android_secure")){
items.add(f.getName());
paths.add(f.getPath());
}
}
listV.setAdapter(new MyAdapter(FileList.this, items, paths));
}
private void onclicks() {
//单击事件
// TODO Auto-generated method stub
listV.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
File file=new File(paths.get(arg2));
if(file.isDirectory()){
//进入文件夹
getFilesDir(paths.get(arg2));
}else{
//打开文件
openFile(file);
}
}
});
}
//打开文件操作
protected void openFile(File file) {
}
public class MyAdapter extends BaseAdapter {
private LayoutInflater inflater;
private List<String> items=null;
private List<String> paths=null;
private Bitmap back;
private Bitmap fold;
private Bitmap doc;
public MyAdapter(Context context,List<String> it,List<String> pa ) {
// TODO Auto-generated constructor stub
inflater=LayoutInflater.from(context);
items=it;
paths=pa;
back=BitmapFactory.decodeResource(context.getResources(), R.drawable.back);
fold=BitmapFactory.decodeResource(context.getResources(), R.drawable.folder);
doc=BitmapFactory.decodeResource(context.getResources(),R.drawable.default_fileicon);
}
public int getCount() {
// TODO Auto-generated method stub
return items.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return items.get(position);
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if(convertView==null){
convertView=inflater.inflate(R.layout.listview, null);
holder=new ViewHolder();
holder.text=(TextView) convertView.findViewById(R.id.text);
holder.img=(ImageView) convertView.findViewById(R.id.img);
convertView.setTag(holder);
}
else{
holder=(ViewHolder) convertView.getTag();
}
File file=new File(paths.get(position).toString());
if(items.get(position).equals("up")){
holder.text.setText("上一级");
holder.img.setImageBitmap(back);
}else{
holder.text.setText(items.get(position));
if(file.isDirectory()){
holder.img.setImageBitmap(fold);
}else{
holder.img.setImageBitmap(doc);
}
}
return convertView;
}
}
public class ViewHolder {
TextView text;
ImageView img;
}
}