EX04_21.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:3k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex04_21;
  2. /* import相关class */
  3. import java.io.File;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import android.app.AlertDialog;
  7. import android.app.ListActivity;
  8. import android.content.DialogInterface;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.widget.ArrayAdapter;
  12. import android.widget.ListView;
  13. import android.widget.TextView;
  14. public class EX04_21 extends ListActivity
  15. {
  16.   /* 对象声明 
  17.      items:存放显示的名称
  18.      paths:存放文件路径
  19.      rootPath:起始目录
  20.   */
  21.   private List<String> items=null;
  22.   private List<String> paths=null;
  23.   private String rootPath="/";
  24.   private TextView mPath;
  25.   
  26.   /** Called when the activity is first created. */
  27.   @Override
  28.   protected void onCreate(Bundle icicle)
  29.   {
  30.     super.onCreate(icicle);
  31.     
  32.     /* 载入main.xml Layout */
  33.     setContentView(R.layout.main);
  34.     mPath=(TextView)findViewById(R.id.mPath);
  35.     
  36.     getFileDir(rootPath);
  37.   }
  38.   
  39.   /* 取得文件架构的method */
  40.   private void getFileDir(String filePath)
  41.   {
  42.     /* 设置目前所在路径 */
  43.     mPath.setText(filePath);
  44.     
  45.     items=new ArrayList<String>();
  46.     paths=new ArrayList<String>();  
  47.     File f=new File(filePath);  
  48.     File[] files=f.listFiles();
  49.     
  50.     if(!filePath.equals(rootPath))
  51.     {
  52.       /* 第一笔设置为[回到根目录] */
  53.       items.add("Back to "+rootPath);
  54.       paths.add(rootPath);
  55.       /* 第二笔设置为[回上层] */
  56.       items.add("Back to ../");
  57.       paths.add(f.getParent());
  58.     }
  59.     /* 将所有文件添加ArrayList中 */
  60.     for(int i=0;i<files.length;i++)
  61.     {
  62.       File file=files[i];
  63.       items.add(file.getName());
  64.       paths.add(file.getPath());
  65.     }
  66.     
  67.     /* 声明一ArrayAdapter,使用file_row这个Layout,
  68.        并将Adapter设置给此ListActivity */
  69.     ArrayAdapter<String> fileList = 
  70.       new ArrayAdapter<String>(this,R.layout.file_row, items);
  71.     setListAdapter(fileList);
  72.   }
  73.   
  74.   /* 设置ListItem被点击时要做的动作 */
  75.   @Override
  76.   protected void onListItemClick(ListView l,View v,
  77.                                    int position,long id)
  78.   {
  79.     File file = new File(paths.get(position));
  80.     if (file.isDirectory())
  81.     {
  82.       /* 如果是文件夹就再进去捞一次 */
  83.       getFileDir(paths.get(position));
  84.     }
  85.     else
  86.     {
  87.       /* 如果是文件,则跳出AlertDialog */
  88.       new AlertDialog.Builder(this).setIcon(R.drawable.icon)
  89.                        .setTitle("["+file.getName()+"] is File!")
  90.                        .setPositiveButton("OK",
  91.                        new DialogInterface.OnClickListener()
  92.                        {
  93.                          public void onClick(DialogInterface dialog,
  94.                                                int whichButton)
  95.                          {
  96.                          }
  97.                        }).show();         
  98.     }
  99.   }
  100. }