2016-08-01 3 views
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(); 

答えて

1

使用listFiles(FILE_FILTER)。あなたの場合は、拡張子が ".mp3"であるかどうかをチェックするフィルタを作成します。次に、各ファイルをArrayListに追加します。

+0

例を入力できますか? – Slavik

関連する問題