如何通过code。打开文件管理内置 [英] How to open inbuilt filemanager through code

查看:182
本文介绍了如何通过code。打开文件管理内置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的手机一个内置的文件管理器。我怎么能叫通过code在我的应用程序。

I have an inbuilt filemanager in my phone. How can I call that through code in my app.

推荐答案

我写我自己的文件管理器,如下图所示。可能对你有用的所有

I wrote my own file manager as shown below. May be useful to you all.

试试这个,纠正我,如果我错了

Try this and correct me if I am wrong

public class FileManager extends Activity {

private String[] basePath = {Environment.getExternalStorageDirectory() + "", "/mnt/sdcard2"};

private ListView listView;

private ArrayList<String> pathList;
ArrayAdapter<String> adapter;
private ArrayList<String> fileList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_file_manager);

    listView = (ListView)findViewById(R.id.listView);

    fileList = new ArrayList<String>();
    pathList = new ArrayList<String>();

    adapter = new ArrayAdapter<String>(this,    android.R.layout.simple_list_item_1, fileList);
    loadBasedata();
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

            // Path is hardcoded
            if(pathList.size() == 0)
                pathList.add(basePath[0]);
            else
                pathList.add(pathList.get(pathList.size() - 1) + "/" + fileList.get(position));
            fileList.clear();
            // Add new files to list
            addFilesToList(pathList.get(pathList.size() - 1));
            adapter.notifyDataSetChanged();
        }
    }); 
}
private void loadBasedata() {
    fileList.clear();

    fileList.add("Internal sdcard");
    File file = new File(basePath[1]);
    if(file.exists())
    {
        fileList.add("External sdcard");
    }
    adapter.notifyDataSetChanged();
}   
@Override
public void onBackPressed() {

    if(pathList.isEmpty())
        finish();
    else if(pathList.size() == 1)
    {
        pathList.clear();
        loadBasedata();
    }
    else
    {
        fileList.clear();
        pathList.remove(pathList.size() - 1);
        addFilesToList(pathList.get(pathList.size() - 1));
        adapter.notifyDataSetChanged();
    }
}
private void addFilesToList(String path) {
    File parentDir = new File(path);

    if(parentDir.isDirectory())
    {
        File[] files = parentDir.listFiles();
        //this.adapter.add("Go Back");
        for(int i = 0; i < files.length; i++)
        {
            String filename=files[i].getName();
            fileList.add(filename);        
        }
    }
}

}

这篇关于如何通过code。打开文件管理内置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆