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

android开发

开发平台:

Java

  1. package irdc.ex06_09;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import android.app.ListActivity;
  7. import android.content.Intent;
  8. import android.os.Bundle;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.View;
  12. import android.widget.ArrayAdapter;
  13. import android.widget.ListView;
  14. public class EX06_09_1 extends ListActivity
  15. {
  16.   private List<String> items = null;
  17.   private String path;
  18.   protected final static int MENU_NEW = Menu.FIRST;
  19.   protected final static int MENU_DELETE = Menu.FIRST + 1;
  20.   @Override
  21.   public void onCreate(Bundle savedInstanceState)
  22.   {
  23.     super.onCreate(savedInstanceState);
  24.     setContentView(R.layout.ex06_09_1);
  25.     Bundle bunde = this.getIntent().getExtras();
  26.     path = bunde.getString("path");
  27.     java.io.File file = new java.io.File(path);
  28.     /* 当该目录不存在时将目录创建 */
  29.     if (!file.exists())
  30.     {
  31.       file.mkdir();
  32.     }
  33.     fill(file.listFiles());
  34.   }
  35.   @Override
  36.   public boolean onOptionsItemSelected(MenuItem item)
  37.   {
  38.     super.onOptionsItemSelected(item);
  39.     switch (item.getItemId())
  40.     {
  41.       case MENU_NEW:
  42.         /* 点击添加MENU */
  43.         showListActivity(path, "", "");
  44.         break;
  45.       case MENU_DELETE:
  46.         /* 点击删除MENU */
  47.         deleteFile();
  48.         break;
  49.     }
  50.     return true;
  51.   }
  52.   @Override
  53.   public boolean onCreateOptionsMenu(Menu menu)
  54.   {
  55.     super.onCreateOptionsMenu(menu);
  56.     /* 添加MENU */
  57.     menu.add(Menu.NONE, MENU_NEW, 0, R.string.strNewMenu);
  58.     menu.add(Menu.NONE, MENU_DELETE, 0, R.string.strDeleteMenu);
  59.     return true;
  60.   }
  61.   @Override
  62.   protected void onListItemClick
  63.   (ListView l, View v, int position, long id)
  64.   {
  65.     File file = new File
  66.     (path + java.io.File.separator + items.get(position));
  67.     
  68.     /* 点击文件取得文件内容 */
  69.     if (file.isFile())
  70.     {
  71.       String data = "";
  72.       try
  73.       {
  74.         FileInputStream stream = new FileInputStream(file);
  75.         StringBuffer sb = new StringBuffer();
  76.         int c;
  77.         while ((c = stream.read()) != -1)
  78.         {
  79.           sb.append((char) c);
  80.         }
  81.         stream.close();
  82.         data = sb.toString();
  83.       }
  84.       catch (Exception e)
  85.       {
  86.         e.printStackTrace();
  87.       }
  88.       showListActivity(path, file.getName(), data);
  89.     }
  90.   }
  91.   private void fill(File[] files)
  92.   {
  93.     items = new ArrayList<String>();
  94.     if (files == null)
  95.     {
  96.       return;
  97.     }
  98.     for (File file : files)
  99.     {
  100.       items.add(file.getName());
  101.     }
  102.     ArrayAdapter<String> fileList = new ArrayAdapter<String>
  103.     (this,android.R.layout.simple_list_item_1, items);
  104.     setListAdapter(fileList);
  105.   }
  106.   private void showListActivity
  107.   (String path, String fileName, String data)
  108.   {
  109.     Intent intent = new Intent();
  110.     intent.setClass(EX06_09_1.this, EX06_09_2.class);
  111.     
  112.     Bundle bundle = new Bundle();
  113.     /* 文件路径 */
  114.     bundle.putString("path", path);
  115.     /* 文件名 */
  116.     bundle.putString("fileName", fileName);
  117.     /* 文件内容 */
  118.     bundle.putString("data", data);
  119.     intent.putExtras(bundle);
  120.     
  121.     startActivity(intent);
  122.   }
  123.   private void deleteFile()
  124.   {
  125.     int position = this.getSelectedItemPosition();
  126.     if (position >= 0)
  127.     {
  128.       File file = new File(path + java.io.File.separator + 
  129.       items.get(position));
  130.       
  131.       /* 删除文件 */
  132.       file.delete();
  133.       items.remove(position);
  134.       getListView().invalidateViews();
  135.     }
  136.   }
  137. }