首页 > 解决方案 > 如何在Android中将来自不同地方的两个条目显示到ListView中

问题描述

我需要列出列表中不同位置的文件,但第二个对象总是破坏第一个对象,我很乐意提供帮助

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_listview);

        File root = new File(Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera");
        ListDir(root);

        File root1 = new File(Environment.getExternalStorageDirectory().toString() + "/Download" );
        ListDir(root1);
    }

    void ListDir(File f)
    {
        File[] files = f.listFiles();
        fileList.clear();
        for (File file: files)
        {
            fileList.add(file.getName());
        }
        ArrayAdapter<String> dir = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_activated_1,fileList);
        setListAdapter(dir);
    }

标签: javaandroid

解决方案


根据要求提供示例

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_listview);

        ArrayList<File> roots = new ArrayList<>();

        File root = new File(Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera");
        roots.add(root);

        File root1 = new File(Environment.getExternalStorageDirectory().toString() + "/Download" );
        roots.add(root1);

        //After you've added as many directories as you need
        ListDir(roots);
    }

    void ListDir(ArrayList<File> root_direcs)
    {
        fileList.clear();
        for(File root : root_direcs){
            fileList.addAll(Arrays.asList(root.listFiles()));
        }

        ArrayAdapter<String> dir = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_activated_1,fileList);
        setListAdapter(dir);
    }

推荐阅读