Android 从文件夹中的音频文件填充自定义listview

Android 从文件夹中的音频文件填充自定义listview,android,listview,arraylist,custom-adapter,Android,Listview,Arraylist,Custom Adapter,我正在尝试从文件夹中获取文件,并使用自定义适配器根据文件名填充recyclerview 我就是这样做的: 在BindViewHolder上的中: Product m = dataList.get(position); //title holder.title.setText(m.getTitle()); 以及: void popList(){ 产品=新产品(); File dir=新文件(mainFolder);//文件路径 File[]filelist=dir.lis

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

我就是这样做的:

在BindViewHolder上的中:

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

void popList(){
产品=新产品();
File dir=新文件(mainFolder);//文件路径
File[]filelist=dir.listFiles();
String[]nameOfFiles=新字符串[filelist.length];
for(int i=0;i
但问题是,它只添加了第一项。
我不知道我应该在哪里循环来添加所有内容。

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

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(){
产品;
File dir=新文件(mainFolder);//文件路径
File[]filelist=dir.listFiles();
String[]nameOfFiles=新字符串[filelist.length];
for(int i=0;i
您的代码遍历

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 
}
void popList(){
Product Product=新产品();//一个对象
//..代码
for(int i=0;i
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 
}