1
おはよう。私はこのような問題があります:私はFileBrowserを開くDialogBrowserを持っていて、私はArrayList mySongsに.mp3形式の選択されたディレクトリを持つすべてのファイルを取得したい。しかし、私はそれをどうやって理解していません。これは、mp3プレーヤーで、私のコードの次の:FILE_FILTERがFilenameFilter
オブジェクトで選択したディレクトリオブジェクトのループ機能のための内部arraylist Androidスタジオで選択したディレクトリからファイルを置く方法
public class MainActivity extends AppCompatActivity {
ListView lv;
String[] items;
FetchSongs fs;
ArrayList<File> mySongs;
ProgressDialog dialog;
ImageView browser;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_main);
lv=(ListView)findViewById(R.id.listView);
browser = (ImageView) findViewById(R.id.browser);
fs=new FetchSongs();
dialog=new ProgressDialog(this);
dialog.setMessage("Подождите пожалуйста, идет загрузка песен...");
dialog.setCancelable(true);
dialog.show();
//Если песни не загружены или не найдены:
while(fs.getfetchstatus()!=true){
mySongs=fs.findSongs(Environment.getExternalStorageDirectory());
}
if(mySongs!=null){
dialog.dismiss();
}
mySongs = fs.getsonglist();
//Инициализируем наш массив куда поместим все песни для ЛистВью
items= new String[mySongs.size()];
for (int i=0;i<mySongs.size();i++){
items[i]=mySongs.get(i).getName().toString().replace(".mp3","");
}
//Назначаем адаптер для ЛистВью с массивом из найденных песен, и передаем их все на следующий активити
ArrayAdapter<String> adp= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items);
lv.setAdapter(adp);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent=new Intent(getApplicationContext(),Player.class);
intent.putExtra("pos",i);
startActivity(intent);
finish();
}
});
}
public void onClickBtn (View v) {
File mPath = new File(Environment.getExternalStorageDirectory() + "//DIR//");
FileDialog fileDialog = new FileDialog(this, mPath);
fileDialog.setFileEndsWith(new String[]{".mp3"}); // здесь в массив желаемые типы файлов.
// а это выбор папки
fileDialog.addDirectoryListener(new FileDialog.DirectorySelectedListener() {
@Override
public void directorySelected(File directory) {
}
});
fileDialog.setSelectDirectoryOption(false);
fileDialog.showDialog();
例を入力できますか? – Slavik