public class CopyOfFileChooserActivity extends Activity {
private String mSdcardRootPath ; //sdcard 根路径
private String mLastFilePath ; //当前显示的路径
private ArrayList<FileInfo> mFileLists ;
private FileChooserAdapter mAdatper ;
//配置适配器
private void setGridViewAdapter(String filePath) {
updateFileItems(filePath);
mAdatper = new FileChooserAdapter(this , mFileLists);
mGridView.setAdapter(mAdatper);
}
//根据路径更新数据,并且通知Adatper数据改变
private void updateFileItems(String filePath) {
mLastFilePath = filePath ;
mTvPath.setText(mLastFilePath);
if(mFileLists == null)
mFileLists = new ArrayList<FileInfo>() ;
if(!mFileLists.isEmpty())
mFileLists.clear() ;
File[] files = folderScan(filePath);
if(files == null)
return ;
for (int i = 0; i < files.length; i++) {
if(files[i].isHidden()) // 不显示隐藏文件
continue ;
String fileAbsolutePath = files[i].getAbsolutePath() ;
String fileName = files[i].getName();
boolean isDirectory = false ;
if (files[i].isDirectory()){
isDirectory = true ;
}
FileInfo fileInfo = new FileInfo(fileAbsolutePath , fileName , isDirectory) ;
//添加至列表
mFileLists.add(fileInfo);
}
//When first enter , the object of mAdatper don't initialized
if(mAdatper != null)
mAdatper.notifyDataSetChanged(); //重新刷新
}
//获得当前路径的所有文件
private File[] folderScan(String path) {
File file = new File(path);
File[] files = file.listFiles();
return files;
}
private AdapterView.OnItemClickListener mItemClickListener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position,
long id) {
FileInfo fileInfo = (FileInfo)(((FileChooserAdapter)adapterView.getAdapter()).getItem(position));
if(fileInfo.isDirectory()) //点击项为文件夹, 显示该文件夹下所有文件
updateFileItems(fileInfo.getFilePath()) ;
else if(fileInfo.isPPTFile()){ //是ppt文件 , 则将该路径通知给调用者
Intent intent = new Intent();
intent.putExtra(EXTRA_FILE_CHOOSER, fileInfo.getFilePath());
setResult(RESULT_OK , intent);
finish();
}
else { //其他文件.....
toast(getText(R.string.open_file_error_format));
}
}
};
public boolean onKeyDown(int keyCode , KeyEvent event){
if(event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode()
== KeyEvent.KEYCODE_BACK){
backProcess();
return true ;
}
return super.onKeyDown(keyCode, event);
}
//返回上一层目录的操作
public void backProcess(){
//判断当前路径是不是sdcard路径 , 如果不是,则返回到上一层。
if (!mLastFilePath.equals(mSdcardRootPath)) {
File thisFile = new File(mLastFilePath);
String parentFilePath = thisFile.getParent();
updateFileItems(parentFilePath);
}
else { //是sdcard路径 ,直接结束
setResult(RESULT_CANCELED);
finish();
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有