ホームページ > Java > &#&チュートリアル > Android書き込みファイルブラウザの簡単な実装

Android書き込みファイルブラウザの簡単な実装

高洛峰
リリース: 2017-01-17 15:04:28
オリジナル
1451 人が閲覧しました

ファイルを保存するために常にファイル ブラウザー機能を使用することがあります。そこで、今日はブロガーがファイル ブラウザー機能の作成方法を説明します。

まず、ファイルを参照するには、ファイル ツール クラスを作成する必要があります。

import java.io.File; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
  
import android.util.Log; 
  
public class FileUtils { 
  /** 
   * 获取当前目录下的所有文件或文件夹 
   * @param path 路径 
   * @return 
   */
  public static List<Map<String,Object>> GetPathFilsList(String path) { 
    List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); 
    List<Map<String,Object>> filelist = new ArrayList<Map<String,Object>>(); 
    try { 
      String[] Files = new File(path).list(); 
      for(String file : Files){ 
        Map<String, Object> map = new HashMap<String, Object>(); 
        if(new File(path+file).isDirectory()){ 
          map.put("isDirectory",2); 
          map.put("fileName", file); 
            
          list.add(map); 
        }else { 
          map.put("isDirectory", 1); 
          map.put("fileName", file); 
            
          filelist.add(map); 
        } 
        
          
      } 
      list.addAll(filelist); 
      return list; 
    } catch (Exception e) { 
      // TODO: handle exception 
      e.printStackTrace(); 
      return null; 
    } 
  } 
}
ログイン後にコピー

表示と区別を容易にするために、ここではファイルとフォルダーを区別します。

その後、これらのデータを表示するためのアダプター、ListView を使用する必要があります

private class FileBrowserAdapter extends BaseAdapter{ 
    private List<Map<String, Object>> fileList; 
    private Context context; 
  
    public FileBrowserAdapter(Context Context, 
        List<Map<String, Object>> fileList) { 
      this.fileList = fileList; 
      this.context = context; 
    } 
  
    @Override
    public int getCount() { 
      return fileList == null ? 0 : fileList.size(); 
    } 
  
    @Override
    public Object getItem(int position) { 
      return fileList.get(position); 
    } 
  
    @Override
    public long getItemId(int position) { 
      return position; 
    } 
  
    @SuppressLint("InflateParams") 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) { 
  
      LayoutInflater mInflater = LayoutInflater 
          .from(getApplicationContext()); 
      View view = null; 
      view = mInflater.inflate(R.layout.file_list_item, null); 
      ImageView image = (ImageView) view 
          .findViewById(R.id.file_list_item_image); 
      if (Integer 
          .parseInt(fileList.get(position).get("isDirectory") + "") == 2) 
        image.setImageResource(R.drawable.folder); 
      else if (Integer.parseInt(fileList.get(position).get("isDirectory") 
          + "") == 1) 
        image.setImageResource(R.drawable.documents); 
      TextView textView = (TextView) view 
          .findViewById(R.id.file_list_item_testview); 
      textView.setTextColor(Color.BLACK); 
      textView.setText(fileList.get(position).get("fileName") + ""); 
      return view; 
  
    } 
    
  }
ログイン後にコピー

最後に、これらを実装する必要があります

dir = Environment.getExternalStorageDirectory() 
        .getAbsolutePath() + "/"; 
    fileListView = (ListView) findViewById(R.id.file_listview); 
    listItemClickListener = new FileListItemClickListener(); 
//   //设置点击事件 
    fileListView.setOnItemClickListener(listItemClickListener); 
    fileList = FileUtils.GetPathFilsList(dir); 
    if (new File(dir).getParent() != null) { 
      Map<String, Object> map = new HashMap<String, Object>(); 
      map.put("isDirectory", 0); 
      map.put("fileName", new File(dir).getParent()); 
      fileList.add(0, map); 
  
    } 
    FileBrowserAdapter phoneFileBrowserAdapter = new FileBrowserAdapter( 
        getApplicationContext(), fileList); 
    fileListView.setAdapter(phoneFileBrowserAdapter);
ログイン後にコピー

Renderings:

Android書き込みファイルブラウザの簡単な実装

上記はこの記事の全内容です。皆様のヘルプ学習に役立つよう、皆様にも PHP 中国語 Web サイトをサポートしていただければ幸いです。

Android 書き込みファイル ブラウザの簡単な実装に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート