Вот мой код моей деятельности.
public class MainActivity extends AppCompatActivity {
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=findViewById(R.id.chckExternal);
filter();
}
Это мой код файлов фильтров ...
//--------------------Filter files----------------
public ArrayList<File> findSongs(File root) {
ArrayList<File> al = new ArrayList<>();
for(File singleFile : root.listFiles())
{
if(singleFile.isDirectory() && !singleFile.isHidden() ) {
al.addAll(findSongs(singleFile));
} else if(singleFile.getName().endsWith(".mp3") ||
singleFile.getName().endsWith(".MP3")) {
al.add(singleFile);
}
}
return al;
}
Это метод установки значений фильтра в просмотре списка..
public void filter(){
ArrayList<File>
arrayList=findSongs(Environment.getExternalStorageDirectory());
ArrayList<String> convertedItemsList=new
ArrayList(arrayList.size());
for(int j=0;j < arrayList.size(); j++) {
convertedItemsList.add(arrayList.get(j)
.getParentFile().getName().toString());
}
ArrayAdapter arrayAdapter=new
ArrayAdapter(this,android.R.layout.simple_list_item_1,
convertedItemsList);
lv.setAdapter(arrayAdapter);
}
}
Этот код может читать файлы из внутреннего хранилища устройства, но не может читать из внешнего хранилища, такого как OTG и съемная SD-карта ....