Activity程序

package com.example.fileasynctaskproject;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {
private ListView mylist=null;
private List<Map<String,Object>> filelist=new ArrayList<Map<String,Object>>();
private SimpleAdapter simple=null;
private ListFileThread tf=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
this.mylist=(ListView)super.findViewById(R.id.mylist);
File file=new File(java.io.File.separator);//从根目录下开始列出
this.tf=new ListFileThread();
tf.execute(file);
this.mylist.setOnItemClickListener(new OnItemClickListenerlmpl());
}

private class OnItemClickListenerlmpl implements OnItemClickListener{

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
File currFile=(File)MainActivity.this.filelist.get(arg2).get("name");
if(currFile.isDirectory()){
MainActivity.this.filelist=new ArrayList<Map<String,Object>>();
ListFileThread tft=new ListFileThread();
tft.execute(currFile);
}
}

}

private class ListFileThread extends AsyncTask<File, File, String>{

@Override
protected void onProgressUpdate(File... values) {
Map<String,Object> map=new HashMap<String, Object>();
if(values[0].isDirectory()){//如果是目录
map.put("img", R.drawable.folder_close);//设置文件夹图标
}else{
map.put("img", R.drawable.file);//设置文件图标
}
map.put("name", values[0]);
MainActivity.this.filelist.add(map);
MainActivity.this.simple=new SimpleAdapter(
MainActivity.this,
MainActivity.this.filelist,
R.layout.file_out,
new String[]{"img","name"},
new int[]{R.id.img,R.id.name});
MainActivity.this.mylist.setAdapter(MainActivity.this.simple);
}

@Override
protected String doInBackground(File... params) {
if(!params[0].getPath().equals(java.io.File.separator)){//不是根目录
Map<String,Object> map=new HashMap<String, Object>();
map.put("img", R.drawable.folder_open);
map.put("name", params[0].getParentFile());
MainActivity.this.filelist.add(map);
}
if(params[0].isDirectory()){//路径是目录
File tempFile[]=params[0].listFiles();
if(tempFile!=null){
for (int i = 0; i < tempFile.length; i++) {
this.publishProgress(tempFile[i]);
}
}
}
return "执行完毕";
}

}

@Override
public 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;
}

}
界面配置文件activity_mail.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<ListView
android:id="@+id/mylist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
表格布局file_out.xml

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableRow>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/name"
android:layout_width="180px"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>

更多相关文章

  1. android 图片轮播(banner)无限轮播
  2. Android(安卓)WebView ScrollBar设置
  3. android 记得用mkdirs不要用mkdir
  4. Android实现网络音乐播放器
  5. 设置 Android(安卓)wifi连接 samples【转】
  6. android 设置APN
  7. 设置android全屏的两种方式
  8. Linearlayout
  9. android scrollview滑动时悬浮部分控件

随机推荐

  1. 虽然难用,但12306面临的业务场景复杂度可
  2. 请注意,容器技术圈已迈入后Kubernetes时代
  3. 科普:QUIC协议原理分析
  4. 让互联网更快的协议,QUIC在腾讯的实践及性
  5. 佛系程序员的月薪五万指南
  6. 每日数亿次微信视频通话背后,靠什么技术支
  7. CSS中使用grid进行布局的应用
  8. PyCharm2021最新激活教程激活码(PyCharm 2
  9. Copy a homepage by Grid
  10. 闪存出现“位置不可用无法访问函数不正确