1

私の電話にはファイルマネージャーが組み込まれています。アプリのコードを使用してこれを呼び出すにはどうすればよいですか。

4

2 に答える 2

1

以下に示すように、私は自分のファイルマネージャーを作成しました。皆さんのお役に立てば幸いです。

これを試して、私が間違っている場合は私を修正してください

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);        
        }
    }
}

}

于 2013-03-23T12:04:27.967 に答える
0

これを試して

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
intent.setData(Uri.parse("file://"));

if (getPackageManager().resolveActivity(intent, 0) != null)
    startActivity(intent);

一部のAndroidオペレーティングシステムにはファイルブラウザがないため、上記の検証が必要です。

于 2013-03-15T02:55:26.540 に答える