• Android入门之文件系统操作(一)简单的文件浏览器


    Android入门之文件系统操作(一)简单的文件浏览器

    import java.io.File;
    import java.util.*;

    import android.app.Activity;
    import android.content.Context;
    import android.os.*;
    import android.view.*;
    import android.widget.*;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ImageView.ScaleType;

    public class FileBrowser extends Activity {

    private ListView mainListView=null;
    private List<Map<String,Object>> list=null;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setTitle("文件浏览器");
    mainListView=new ListView(this);
    setContentView(mainListView);

    File file=Environment.getRootDirectory();
    String pathx=file.getAbsolutePath();
    this.setTitle(pathx);
    //android的总目录就是"/"
    list_init("/");
    }

    void list_init(String path){
    File file=new File(path);
    File[] fileList=file.listFiles();
    list=new ArrayList<Map<String,Object>>();
    Map<String,Object> item;
    item=new HashMap<String,Object>();
    if(path.equals("/")){
    item.put("ico",R.drawable.home);
    item.put("name","总目录列表");
    item.put("path","/");
    list.add(item);
    }else{
    item.put("ico",R.drawable.back);
    item.put("name","返回上一级");
    item.put("path",file.getParent());
    list.add(item);
    }
    for(int i=0;i<fileList.length;i++){
    item=new HashMap<String,Object>();
    if(fileList[i].isDirectory()){
    if(fileList[i].list().length<1){
    item.put("ico",R.drawable.file1);
    }else{
    item.put("ico",R.drawable.file2);
    }
    }else{
    item.put("ico",R.drawable.content);
    }
    item.put("name",fileList[i].getName());
    item.put("path",fileList[i].getAbsolutePath());
    list.add(item);
    }
    MyAdapter ma=new MyAdapter(this,list);
    //mainListView=new ListView(this);
    mainListView.setAdapter(ma);
    mainListView.setOnItemClickListener(new OnItemClickListener(){
    public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
    if(arg2>0 && (Integer)(list.get(arg2).get("ico"))==R.drawable.content){
    //非文件夹图标,点击无效
    }else{
    //打开下一级文件目录列表
    list_init((String)(list.get(arg2).get("path")));
    }
    }
    });
    this.setTitle(path);
    }

    public class MyAdapter extends BaseAdapter{

    Context context=null;
    List<Map<String,Object>> list=null;

    MyAdapter(Context context,List<Map<String,Object>> list){
    this.context=context;
    this.list=list;
    }
    public int getCount() {return list.size();}
    public Object getItem(int position) {return position;}
    public long getItemId(int position) {return position;}

    public View getView(int position, View convertView, ViewGroup parent) {
    LinearLayout returnView=new LinearLayout(context);
    returnView.setLayoutParams(new ListView.LayoutParams(-1,-2));//注意:ListView.LayoutParams
    //图标
    ImageView iv=new ImageView(context);
    LinearLayout.LayoutParams lp_iv=new LinearLayout.LayoutParams(-2,-2);
    lp_iv.rightMargin=10;
    iv.setLayoutParams(lp_iv);
    iv.setScaleType(ScaleType.CENTER_INSIDE);
    iv.setImageResource((Integer)((list.get(position)).get("ico")));
    returnView.addView(iv);
    //文件名
    TextView name=new TextView(context);
    LinearLayout.LayoutParams lp_tv=new LinearLayout.LayoutParams(-2,-2);
    name.setLayoutParams(lp_tv);
    name.setTextSize(name.getTextSize()+10);
    name.setText((String)(list.get(position).get("name")));
    returnView.addView(name);
    //
    return returnView;
    }

    }
    }

  • 相关阅读:
    linux网络编程之共享内存介绍
    linux网络编程之system v消息队列(二)
    一次性从git远程仓库中克隆到本地。
    返回随机数:整数、浮点数
    下载进度条
    os模块学习+open行数
    json数据处理:读取文件中的json字符串,转为python字典
    python执行命令行:python中执行shell命令行read结果
    format格式化输出
    python操作mongodb
  • 原文地址:https://www.cnblogs.com/yico/p/3486013.html
Copyright © 2020-2023  润新知