从文件夹内的音频文件填充自定义列表视图

时间:2017-09-16 15:59:11

标签: android listview arraylist custom-adapter

我正在尝试从文件夹中获取文件,并使用自定义适配器根据文件名填充recyclerview。

我正是这样做的:

onBindViewHolder

Mth

并且:

    Product m = dataList.get(position);
    //title
    holder.title.setText(m.getTitle());

但问题是,它只是添加了第一项。 我无法弄明白我应该在哪里循环添加它。

1 个答案:

答案 0 :(得分:3)

您需要为循环中的项创建单独的产品对象并将其添加到列表中,而不是在列表中创建将保存最后一组数据的单个Product对象

void popList() {
    Product product ;
    File dir = new File(mainFolder);//path of files
    File[] filelist = dir.listFiles();
    String[] nameOfFiles = new String[filelist.length];
    for (int i = 0; i < nameOfFiles.length; i++) {
        // create product
        product = new Product();
        nameOfFiles[i] = filelist[i].getName();
        product.setTitle(nameOfFiles[i]);
        // add it to list
        songList.add(product);
    }
}

您的代码遍历

void popList() {
    Product product = new Product(); // one object
    // ..code
    for (int i = 0; i < nameOfFiles.length; i++) {
        nameOfFiles[i] = filelist[i].getName();
        product.setTitle(nameOfFiles[i]); // at the end of loop set last file name to object
    }
    songList.add(product); // one object in the list , end of story 
}