![](https://img.haomeiwen.com/i5710864/c4ae8122d7097b0d.png)
![](https://img.haomeiwen.com/i5710864/a4a5d4c1dbc9784b.png)
文件查询的主界面:
public class FilemgrActivity extends BaseActivity implements View.OnClickListener {
private TextView mSize;
private TextView mAll;
private TextView mWord;
private TextView mVoide;
private TextView mAudio;
private TextView mPicture;
private TextView mZip;
private TextView mApp;
public static String all;
public static String word;
public static String vodie;
public static String audio;
public static String img;
public static String zip;
public static String apk;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
all = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getAllSzie());
word = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getWordSzie());
vodie = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getvodieSzie());
audio = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getandioSzie());
img = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getimgSzie());
zip = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getzipSzie());
apk = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getapkSSzie());
switch (msg.what) {
case 0:
String tybeName = (String) msg.obj;
mAll.setText(all);
mSize.setText(Formatter.formatFileSize(FilemgrActivity.this, fileManger.getAllSzie()));
switch (tybeName) {
case FileTypeUtil.TYPE_TXT:
mWord.setText(word);
break;
case FileTypeUtil.TYPE_VIDEO:
mVoide.setText(vodie);
break;
case FileTypeUtil.TYPE_AUDIO:
mAudio.setText(audio);
break;
case FileTypeUtil.TYPE_IMAGE:
mPicture.setText(img);
break;
case FileTypeUtil.TYPE_ZIP:
mZip.setText(zip);
break;
case FileTypeUtil.TYPE_APK:
mApp.setText(apk);
break;
}
break;
case 1:
mAll.setText(all);
mSize.setText(all);
mWord.setText(word);
mVoide.setText(vodie);
mAudio.setText(audio);
mPicture.setText(img);
mZip.setText(zip);
mApp.setText(apk);
break;
}
}
};
private FileManger fileManger;
private RelativeLayout mRLall;
private RelativeLayout mRLword;
private RelativeLayout mRLvodie;
private RelativeLayout mRLandio;
private RelativeLayout mRLimg;
private RelativeLayout mRLzip;
private RelativeLayout mRLapk;
public static List<FileInfo> apkList;
public static List<FileInfo> imgList;
public static List<FileInfo> zipList;
public static List<FileInfo> andioList;
public static List<FileInfo> vodieList;
public static List<FileInfo> wordList;
public static List<FileInfo> allList;
@Override
protected boolean isShowActionBar() {
return true;
}
@Override
protected void initData() {
setTitle("文件清理");
fileManger = new FileManger();
allList = fileManger.getallList();
wordList = fileManger.getwordList();
vodieList = fileManger.getvodieList();
andioList = fileManger.getandioList();
zipList = fileManger.getzipList();
imgList = fileManger.getimgList();
apkList = fileManger.getapklList();
FileManger.searchONclick fileListener = new FileManger.searchONclick() {
@Override
public void searchTybe(String tybeaName) {
Message msg = handler.obtainMessage();
msg.obj = tybeaName;
msg.what = 0;
handler.sendMessage(msg);
}
@Override
public void searchEnd() {
Message msg = handler.obtainMessage();
msg.what = 1;
handler.sendMessage(msg);
}
};
fileManger.setSearchListener(fileListener);
new Thread() {
@Override
public void run() {
super.run();
fileManger.search();
}
}.start();
}
@Override
protected void initView() {
mSize = getViewById(R.id.tv_file_size);
mAll = getViewById(R.id.tv_file_all);
mWord = getViewById(R.id.tv_file_word);
mVoide = getViewById(R.id.tv_file_voide);
mAudio = getViewById(R.id.tv_file_audio);
mPicture = getViewById(R.id.tv_file_pic);
mZip = getViewById(R.id.tv_file_yasuo);
mApp = getViewById(R.id.tv_file_app);
mRLall = getViewById(R.id.rela_fileshow_all);
mRLword = getViewById(R.id.rela_fileshow_word);
mRLvodie = getViewById(R.id.rela_fileshow_voide);
mRLandio = getViewById(R.id.rela_fileshow_andio);
mRLimg = getViewById(R.id.rela_fileshow_pic);
mRLzip = getViewById(R.id.rela_fileshow_zip);
mRLapk = getViewById(R.id.rela_fileshow_apk);
}
@Override
protected int getLayoutId() {
return R.layout.activity_filemgr;
}
@Override
public void onClick(View v) {
Intent intent = new Intent(FilemgrActivity.this,FileShowActivity.class);
intent.putExtra("id", v.getId());
startActivity(intent);
finish();
}
@Override
protected void setListaner() {
super.setListaner();
mRLall.setOnClickListener(this);
mRLword.setOnClickListener(this);
mRLvodie.setOnClickListener(this);
mRLandio.setOnClickListener(this);
mRLzip.setOnClickListener(this);
mRLapk.setOnClickListener(this);
mRLimg.setOnClickListener(this);
}
}
主界面的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#fff"
tools:context="com.gfd.phone.activity.FilemgrActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#2c63d7"
>
<TextView
android:id="@+id/zhaodao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="已找到"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold|italic"
android:layout_toLeftOf="@+id/tv_file_size"
android:layout_alignBaseline="@+id/tv_file_size"/>
<TextView
android:id="@+id/tv_file_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20.0m"
android:textColor="#fff"
android:textSize="50dp"
android:textStyle="bold|italic"
android:layout_centerInParent="true"
/>
</RelativeLayout>
//ScrollView为了让下面的控件可以下拉,
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#f1eeee"
>
<RelativeLayout
android:id="@+id/rela_fileshow_all"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="#ffffff"
>
<TextView
android:id="@+id/one"
android:text="全部"
style="@style/file_list" />
<TextView
android:id="@+id/tv_file_all"
android:text="准备中····"
style="@style/file_size"
android:layout_toRightOf="@+id/one"/>
<ImageView style="@style/file_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1.5dp"
android:background="#00ffffff"/>
<RelativeLayout
android:id="@+id/rela_fileshow_word"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="#ffffff">
<TextView
android:id="@+id/two"
android:text="文档"
style="@style/file_list" />
<TextView
android:id="@+id/tv_file_word"
android:text="准备中····"
style="@style/file_size"
android:layout_toRightOf="@+id/two"/>
<ImageView style="@style/file_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1.5dp"
android:background="#00ffffff"/>
<RelativeLayout
android:id="@+id/rela_fileshow_voide"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="#ffffff">
<TextView
android:id="@+id/threr"
android:text="视频"
style="@style/file_list" />
<TextView
android:id="@+id/tv_file_voide"
android:text="准备中····"
style="@style/file_size"
android:layout_toRightOf="@+id/threr"/>
<ImageView style="@style/file_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1.5dp"
android:background="#00ffffff"/>
<RelativeLayout
android:id="@+id/rela_fileshow_andio"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="#ffffff">
<TextView
android:id="@+id/four"
android:text="音频"
style="@style/file_list" />
<TextView
android:id="@+id/tv_file_audio"
android:text="准备中····"
style="@style/file_size"
android:layout_toRightOf="@+id/four"/>
<ImageView style="@style/file_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1.5dp"
android:background="#00ffffff"/>
<RelativeLayout
android:id="@+id/rela_fileshow_pic"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="#ffffff">
<TextView
android:id="@+id/five"
android:text="图像"
style="@style/file_list" />
<TextView
android:id="@+id/tv_file_pic"
android:text="准备中····"
style="@style/file_size"
android:layout_toRightOf="@+id/five"/>
<ImageView style="@style/file_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1.5dp"
android:background="#00ffffff"/>
<RelativeLayout
android:id="@+id/rela_fileshow_zip"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="#ffffff">
<TextView
android:id="@+id/six"
android:text="压缩包"
style="@style/file_list" />
<TextView
android:id="@+id/tv_file_yasuo"
android:text="准备中····"
style="@style/file_size"
android:layout_toRightOf="@+id/six"/>
<ImageView style="@style/file_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1.5dp"
android:background="#00ffffff"/>
<RelativeLayout
android:id="@+id/rela_fileshow_apk"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="#ffffff">
<TextView
android:id="@+id/seven"
android:text="程序包"
style="@style/file_list" />
<TextView
android:id="@+id/tv_file_app"
android:text="准备中····"
style="@style/file_size"
android:layout_toRightOf="@+id/seven"/>
<ImageView style="@style/file_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1.5dp"
android:background="#00ffffff"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
获取各种文件,并区分类型的类
public class FileManger {
public List<FileInfo> allList = new ArrayList<>();
public List<FileInfo> wordList = new ArrayList<>();
public List<FileInfo> vodieList = new ArrayList<>();
public List<FileInfo> andioList = new ArrayList<>();
public List<FileInfo> imgList = new ArrayList<>();
public List<FileInfo> zipList = new ArrayList<>();
public List<FileInfo> apkList = new ArrayList<>();
public long wordSize;
public long vodieSize;
public long andioSize;
public long imgSize;
public long zipSize;
public long apkSize;
long allSize;
public long getAllSzie(){return allSize;}
public long getWordSzie(){return wordSize;}
public long getvodieSzie(){return vodieSize;}
public long getandioSzie(){return andioSize;}
public long getimgSzie(){return imgSize;}
public long getzipSzie(){return zipSize;}
public long getapkSSzie(){return apkSize;}
public List<FileInfo> getallList(){return allList;}
public List<FileInfo> getwordList(){return wordList;}
public List<FileInfo> getvodieList(){return vodieList;}
public List<FileInfo> getandioList(){return andioList;}
public List<FileInfo> getimgList(){return imgList;}
public List<FileInfo> getzipList(){return zipList;}
public List<FileInfo> getapklList(){return apkList;}
private searchONclick fileListener;
private boolean isStopSearch;
public void setStopSearch(boolean isStopSearch) {
this.isStopSearch = isStopSearch;
}
public void search() {
String rootpath = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(rootpath);
search(file, false);
}
public void search(File file, boolean isFileRun) {
if (isStopSearch) {
if (fileListener != null && isFileRun) fileListener.searchEnd();
return;
}
if (file != null || file.exists() || file.canRead()) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File file1 : files) {
search(file1, false);
}
} else {
String name = null;
name = file.getName();
String[] data = FileTypeUtil.getFileIconAndTypeName(file);
String ioceNaem = data[0];
String tybeName = data[1];
FileInfo fileInfo = new FileInfo(file, data[0], data[1]);
allList.add(fileInfo);
allSize += file.length();
switch (data[1]) {
case FileTypeUtil.TYPE_TXT:
wordList.add(fileInfo);
wordSize += file.length();
break;
case FileTypeUtil.TYPE_VIDEO:
vodieList.add(fileInfo);
vodieSize += file.length();
break;
case FileTypeUtil.TYPE_AUDIO:
andioList.add(fileInfo);
andioSize += file.length();
break;
case FileTypeUtil.TYPE_IMAGE:
imgList.add(fileInfo);
imgSize += file.length();
break;
case FileTypeUtil.TYPE_ZIP:
zipList.add(fileInfo);
zipSize += file.length();
break;
case FileTypeUtil.TYPE_APK:
apkList.add(fileInfo);
apkSize += file.length();
break;
}
if (fileListener != null) fileListener.searchEnd();
return;
}
}
}
public interface searchONclick {
void searchTybe(String tybeaName);
void searchEnd();
}
public void setSearchListener(searchONclick fileListener) {
this.fileListener = fileListener;
}
}
区分文件的类
public static String[] getFileIconAndTypeName(File file) {
// 定义数组保存文件类型以及图标 iconAndTypes[0] 表示文件图标 iconAndTypes[1] 文件类型
String[] iconAndTypes = new String[2];
// 首先设置默认文件图标以及类型
iconAndTypes[0] = "icon_file";
iconAndTypes[1] = "*/*";
if (file.isFile()) {
// 根据文件名称进行判断
String name = file.getName();
int dotIndex = name.lastIndexOf(".");
if (dotIndex < 0) {
return iconAndTypes;
}
//获取文件后缀名称
String end = name.substring(dotIndex + 1, name.length())
.toLowerCase();
if (end.equals("")) {
return iconAndTypes;
}
// 对 ICON_TYPE_Table进行便利 找到对应图标以及类型
for (int i = 0; i < ICON_TYPE_Table.length; i++) {
if (end.equals(ICON_TYPE_Table[i][0])) {
iconAndTypes[0] = ICON_TYPE_Table[i][1];
iconAndTypes[1] = ICON_TYPE_Table[i][2];
}
}
return iconAndTypes;
}
return iconAndTypes;
}
private static final String[][] ICON_TYPE_Table = {
// {文件后缀名,文件对应图像名称, 文件所属类型}
{"apk", "icon_video", TYPE_APK},
{"3gp", "icon_video", TYPE_VIDEO},
{"aif", "icon_audio", TYPE_AUDIO},
{"aifc", "icon_audio", TYPE_AUDIO},
{"aiff", "icon_audio", TYPE_AUDIO},
{"als", "icon_audio", TYPE_AUDIO},
{"asc", "icon_text_plain", TYPE_TXT},
{"asf", "icon_video", TYPE_VIDEO},
{"asx", "icon_video", TYPE_VIDEO},
{"au", "icon_audio", TYPE_AUDIO},
{"avi", "icon_video", TYPE_VIDEO},
{"awb", "icon_audio", TYPE_AUDIO},
{"bmp", "icon_bmp", TYPE_IMAGE},
{"bz2", "icon_archive", TYPE_ZIP}, {"c", "icon_c", TYPE_TXT},
{"cpp", "icon_cpp", TYPE_TXT}, {"css", "icon_css", TYPE_TXT},
{"dhtml", "icon_html", TYPE_TXT},
{"doc", "icon_doc", TYPE_TXT}, {"dot", "icon_doc", TYPE_TXT},
{"es", "icon_audio", TYPE_AUDIO},
{"esl", "icon_audio", TYPE_AUDIO},
{"fvi", "icon_video", TYPE_VIDEO},
{"gif", "icon_gif", TYPE_IMAGE}, {"gz", "icon_gzip", TYPE_ZIP},
{"h", "icon_c_h", TYPE_TXT}, {"htm", "icon_html", TYPE_TXT},
{"html", "icon_html", TYPE_TXT},
{"hts", "icon_html", TYPE_TXT},
{"ico", "icon_ico", TYPE_IMAGE},
{"ief", "icon_image", TYPE_IMAGE},
{"ifm", "icon_gif", TYPE_IMAGE},
{"ifs", "icon_image", TYPE_IMAGE},
{"imy", "icon_audio", TYPE_AUDIO},
{"it", "icon_audio", TYPE_AUDIO},
{"itz", "icon_audio", TYPE_AUDIO},
{"j2k", "icon_jpeg", TYPE_IMAGE},
{"java", "icon_java", TYPE_TXT},
{"jar", "icon_java", TYPE_ZIP},
{"jnlp", "icon_java", TYPE_TXT},
{"jpe", "icon_jpeg", TYPE_IMAGE},
{"jpeg", "icon_jpeg", TYPE_IMAGE},
{"jpg", "icon_jpeg", TYPE_IMAGE},
{"jpz", "icon_jpeg", TYPE_IMAGE},
{"js", "icon_javascript", TYPE_TXT},
{"lsf", "icon_video", TYPE_VIDEO},
{"lsx", "icon_video", TYPE_VIDEO},
{"m15", "icon_audio", TYPE_AUDIO},
{"m3u", "icon_playlist", TYPE_AUDIO},
{"m3url", "icon_playlist", TYPE_AUDIO},
{"ma1", "icon_audio", TYPE_AUDIO},
{"ma2", "icon_audio", TYPE_AUDIO},
{"ma3", "icon_audio", TYPE_AUDIO},
{"ma5", "icon_audio", TYPE_AUDIO},
{"mdz", "icon_audio", TYPE_AUDIO},
{"mid", "icon_audio", TYPE_AUDIO},
{"midi", "icon_audio", TYPE_AUDIO},
{"mil", "icon_image", TYPE_IMAGE},
{"mio", "icon_audio", TYPE_AUDIO},
{"mng", "icon_video", TYPE_VIDEO},
{"mod", "icon_audio", TYPE_AUDIO},
{"mov", "icon_video", TYPE_VIDEO},
{"movie", "icon_video", TYPE_VIDEO},
{"mp2", "icon_mp3", TYPE_AUDIO},
{"mp3", "icon_mp3", TYPE_AUDIO},
{"mp4", "icon_video", TYPE_VIDEO},
{"mpe", "icon_video", TYPE_VIDEO},
{"mpeg", "icon_video", TYPE_VIDEO},
{"mpg", "icon_video", TYPE_VIDEO},
{"mpg4", "icon_video", TYPE_VIDEO},
{"mpga", "icon_mp3", TYPE_AUDIO},
{"nar", "icon_zip", TYPE_ZIP},
{"nbmp", "icon_image", TYPE_IMAGE},
{"nokia-op-logo", "icon_image", TYPE_IMAGE},
{"nsnd", "icon_audio", TYPE_AUDIO},
{"pac", "icon_audio", TYPE_AUDIO},
{"pae", "icon_audio", TYPE_AUDIO},
{"pbm", "icon_bmp", TYPE_IMAGE},
{"pcx", "icon_image", TYPE_IMAGE},
{"pda", "icon_image", TYPE_IMAGE},
{"pdf", "icon_pdf", TYPE_TXT},
{"pgm", "icon_image", TYPE_IMAGE},
{"pict", "icon_image", TYPE_IMAGE},
{"png", "icon_png", TYPE_IMAGE},
{"pnm", "icon_image", TYPE_IMAGE},
{"pnz", "icon_png", TYPE_IMAGE}, {"pot", "icon_ppt", TYPE_TXT},
{"ppm", "icon_image", TYPE_IMAGE},
{"pps", "icon_ppt", TYPE_TXT}, {"ppt", "icon_ppt", TYPE_TXT},
{"pvx", "icon_video", TYPE_VIDEO},
{"qcp", "icon_audio", TYPE_AUDIO},
{"qt", "icon_video", TYPE_VIDEO},
{"qti", "icon_image", TYPE_IMAGE},
{"qtif", "icon_image", TYPE_IMAGE},
{"ra", "icon_audio", TYPE_AUDIO},
{"ram", "icon_audio", TYPE_AUDIO},
{"rar", "icon_rar", TYPE_ZIP},
{"ras", "icon_image", TYPE_IMAGE},
{"rf", "icon_image", TYPE_IMAGE},
{"rgb", "icon_image", TYPE_IMAGE},
{"rm", "icon_audio", TYPE_AUDIO},
{"rmf", "icon_audio", TYPE_AUDIO},
{"rmm", "icon_audio", TYPE_AUDIO},
{"rmvb", "icon_audio", TYPE_AUDIO},
{"rp", "icon_image", TYPE_IMAGE},
{"rpm", "icon_audio", TYPE_AUDIO},
{"rtf", "icon_text_richtext", TYPE_TXT},
{"rv", "icon_video", TYPE_VIDEO},
{"s3m", "icon_audio", TYPE_AUDIO},
{"s3z", "icon_audio", TYPE_AUDIO},
{"shtml", "icon_html", TYPE_TXT},
{"si6", "icon_image", TYPE_IMAGE},
{"si7", "icon_image", TYPE_IMAGE},
{"si9", "icon_image", TYPE_IMAGE},
{"smd", "icon_audio", TYPE_AUDIO},
{"smz", "icon_audio", TYPE_AUDIO},
{"snd", "icon_audio", TYPE_AUDIO},
{"stm", "icon_audio", TYPE_AUDIO},
{"svf", "icon_image", TYPE_IMAGE},
{"svg", "icon_image", TYPE_IMAGE},
{"svh", "icon_image", TYPE_IMAGE},
{"swf", "icon_flash", TYPE_VIDEO},
{"swfl", "icon_flash", TYPE_VIDEO},
{"tar", "icon_tar", TYPE_ZIP}, {"taz", "icon_tar", TYPE_ZIP},
{"tgz", "icon_tar", TYPE_ZIP},
{"tif", "icon_tiff", TYPE_IMAGE},
{"tiff", "icon_tiff", TYPE_IMAGE},
{"toy", "icon_image", TYPE_IMAGE},
{"tsi", "icon_audio", TYPE_AUDIO},
{"txt", "icon_text_plain", TYPE_TXT},
{"ult", "icon_audio", TYPE_AUDIO},
{"vdo", "icon_video", TYPE_VIDEO},
{"vib", "icon_audio", TYPE_AUDIO},
{"viv", "icon_video", TYPE_VIDEO},
{"vivo", "icon_video", TYPE_VIDEO},
{"vox", "icon_audio", TYPE_AUDIO},
{"vqe", "icon_audio", TYPE_AUDIO},
{"vqf", "icon_audio", TYPE_AUDIO},
{"vql", "icon_audio", TYPE_AUDIO},
{"wav", "icon_wav", TYPE_VIDEO},
{"wax", "icon_audio", TYPE_AUDIO},
{"wbmp", "icon_bmp", TYPE_IMAGE},
{"wi", "icon_image", TYPE_IMAGE},
{"wm", "icon_video", TYPE_VIDEO},
{"wma", "icon_wma", TYPE_AUDIO},
{"wmv", "icon_video", TYPE_VIDEO},
{"wmx", "icon_video", TYPE_VIDEO},
{"wpng", "icon_png", TYPE_IMAGE},
{"wv", "icon_video", TYPE_VIDEO},
{"wvx", "icon_video", TYPE_VIDEO},
{"xbm", "icon_bmp", TYPE_IMAGE},
{"xht", "icon_xhtml_xml", TYPE_TXT},
{"xhtm", "icon_xhtml_xml", TYPE_TXT},
{"xhtml", "icon_xhtml_xml", TYPE_TXT},
{"xla", "icon_xls", TYPE_TXT}, {"xlc", "icon_xls", TYPE_TXT},
{"xlm", "icon_xls", TYPE_TXT}, {"xls", "icon_xls", TYPE_TXT},
{"xlt", "icon_xls", TYPE_TXT}, {"xlw", "icon_xls", TYPE_TXT},
{"xm", "icon_audio", TYPE_AUDIO},
{"xml", "icon_xml", TYPE_TXT},
{"xmz", "icon_audio", TYPE_AUDIO},
{"xpm", "icon_image", TYPE_IMAGE},
{"xsit", "icon_xml", TYPE_TXT}, {"xsl", "icon_xml", TYPE_TXT},
{"xwd", "icon_image", TYPE_IMAGE},
{"zip", "icon_zip", TYPE_ZIP}};
文件的实例
public class FileInfo {
private String tybeName;
private String fileSize;
private File name;
public boolean select;
public String time;
public String getTime() {
long time=name.lastModified();
SimpleDateFormat date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return date.format(time);
}
public void setTime(String time) {
this.time = time;
}
public boolean isSelect() {
return select;
}
public void setSelect(boolean select) {
this.select = select;
}
public FileInfo(File name, String tybeName, String fileSize) {
this.tybeName = tybeName;
this.fileSize = fileSize;
this.name=name;
}
public String getTybeName() {
return tybeName;
}
public String getFileSize() {
return fileSize;
}
public File getName() {
return name;
}
}
软件清理的界面
public class FileShowActivity extends BaseActivity {
private TextView mTvCount;
private TextView mTvSize;
private ListView mList;
private Button mBtUnistall;
public List<FileInfo> fileInfos;
public FileShowAdapter adapter;
private int a;
private String size;
@Override
protected boolean isShowActionBar() {
return true;
}
//重新基类,为了刷新文件的界面
protected void initActionBar(boolean showActionBar) {
super.initActionBar(showActionBar);
ImageView imageView= getViewById(R.id.img_root_title);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openActivity(FilemgrActivity.class,true);
}
});
}
@Override
protected void initData() {
a = getIntent().getIntExtra("id", -1);
switch (a) {
case R.id.rela_fileshow_all:
setTitle("全部");
fileInfos = FilemgrActivity.allList;
size = FilemgrActivity.all;
break;
case R.id.rela_fileshow_word:
fileInfos = FilemgrActivity.wordList;
size = FilemgrActivity.word;
setTitle("文档");
break;
case R.id.rela_fileshow_voide:
fileInfos = FilemgrActivity.vodieList;
size = FilemgrActivity.vodie;
adapter = new FileShowAdapter(FilemgrActivity.vodieList);
mTvCount.setText(FilemgrActivity.vodieList.size() + "");
mTvSize.setText(FilemgrActivity.vodie);
setTitle("视频");
break;
case R.id.rela_fileshow_andio:
fileInfos = FilemgrActivity.andioList;
size = FilemgrActivity.audio;
setTitle("音频");
break;
case R.id.rela_fileshow_zip:
fileInfos = FilemgrActivity.zipList;
size = FilemgrActivity.zip;
setTitle("压缩包");
break;
case R.id.rela_fileshow_apk:
fileInfos = FilemgrActivity.apkList;
size = FilemgrActivity.apk;
setTitle("程序包");
break;
case R.id.rela_fileshow_pic:
fileInfos = FilemgrActivity.imgList;
size = FilemgrActivity.img;
setTitle("图片");
break;
}
adapter = new FileShowAdapter(fileInfos);
mList.setAdapter(adapter);
mTvCount.setText(fileInfos.size() + "");
mTvSize.setText(size);
}
@Override
protected void initView() {
mTvCount = getViewById(R.id.tv_fileshow_count);
mTvSize = getViewById(R.id.tv_fileshow_size);
mList = getViewById(R.id.list_fileshow);
mBtUnistall = getViewById(R.id.bt_fileshow_unitstall);
}
@Override
protected int getLayoutId() {
return R.layout.activity_file_show;
}
public void deleFile(View view) {
for (int i = 0; i < fileInfos.size(); i++) {
FileInfo fileInfo = fileInfos.get(i);
if (fileInfo.isSelect()) {
if (fileInfo.getName().delete()) {
fileInfos.remove(fileInfo);
} else {
Toast.makeText(this, "删除失败", Toast.LENGTH_SHORT).show();
}
}
}
adapter.notifyDataSetChanged();
long size = 0;
for (FileInfo fileInfo : fileInfos) {
size += fileInfo.getName().length();
}
mTvCount.setText(fileInfos.size() + "");
mTvSize.setText(Formatter.formatFileSize(this, size));
}
}
文件清理的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.gfd.phone.activity.FileShowActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文件数量:"
android:textSize="20dp"/>
<TextView
android:id="@+id/tv_fileshow_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="23"
android:textSize="30dp"
android:textColor="#e2a223"
android:textStyle="italic|bold"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="所占内存:"
android:textSize="20dp"/>
<TextView
android:id="@+id/tv_fileshow_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="30.00"
android:textSize="30dp"
android:textColor="#e2a223"
android:textStyle="italic|bold"/>
</LinearLayout>
<ListView
android:id="@+id/list_fileshow"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
></ListView>
<Button
android:id="@+id/bt_fileshow_unitstall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="清理所选文件"
android:background="@drawable/bt_rocket_bg"
android:layout_margin="10dp"
android:onClick="deleFile"
/>
</LinearLayout>
适配器
public class FileShowAdapter extends BaseAdapter {
private List<FileInfo> datas;
public FileShowAdapter(List<FileInfo> datas) {
this.datas=datas;
}
@Override
public int getCount() {
return datas==null?0:datas.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHordler hordler=null;
if (convertView==null){
convertView= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_fileshow,null);
hordler=new ViewHordler(convertView);
convertView.setTag(hordler);
}else {
hordler= (ViewHordler) convertView.getTag();
}
final FileInfo fileInfo=datas.get(position);
String ioceName=fileInfo.getTybeName();
Resources resources = parent.getContext().getResources();
int ioceId = resources.getIdentifier(ioceName, "mipmap", parent.getContext().getPackageName());
hordler.mIoce.setBackgroundResource(ioceId);
hordler.mTvName.setText(fileInfo.getName().getName());
hordler.mTvData.setText(fileInfo.getTime());
hordler.mTvSize.setText(Formatter.formatFileSize(parent.getContext(),fileInfo.getName().length()));
hordler.mCbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
fileInfo.setSelect(isChecked);
}
});
hordler.mCbSelect.setChecked(fileInfo.isSelect());
return hordler.convertView;
}
public class ViewHordler{
private View convertView;
private final CheckBox mCbSelect;
private final TextView mTvName;
private final ImageView mIoce;
private final TextView mTvData;
private final TextView mTvSize;
public ViewHordler(View convertView) {
this.convertView = convertView;
mCbSelect = (CheckBox) convertView.findViewById(R.id.cb_item_fileshow);
mTvName = (TextView) convertView.findViewById(R.id.tv_item_fileshow_name);
mIoce = (ImageView) convertView.findViewById(R.id.img_item_fileshow_ioce);
mTvData = (TextView) convertView.findViewById(R.id.tv_item_fileshow_date);
mTvSize = (TextView) convertView.findViewById(R.id.tv_item_fileshow_size);
}
}
}
网友评论