Autore Topic: ListView visualizzazione di una sola tipologia di file...  (Letto 302 volte)

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
ListView visualizzazione di una sola tipologia di file...
« il: 08 Gennaio 2014, 19:14:42 CET »
0
Ciao a tutti!!!

Vorrei far visualizzare in una ListView una sola tipologia di file da tutte le cartelle e sottocarlette dell'sdcard....

come faccio???

Post unito: 08 Gennaio 2014, 19:41:16 CET
tra ve varie guide ho trovato questo ma non mi visualizza nessun file!!!!!

vi pongo il codice.

all'activity_main.xml ho scritto questo:
Codice (Java): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

    <ListView android:id="@id/android:list"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:layout_weight="1"
              android:drawSelectorOnTop="false"/>

</LinearLayout>

per visualizzare la row ho scritto questo:
Codice (Java): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

mentre al mainActivity ho scritto questo:
Codice (Java): [Seleziona]
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.graphics.Typeface;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

class Mp3Filter implements FilenameFilter {
    public boolean accept(File dir, String name) {
        return (name.endsWith(".mp3"));
    }
}

public class MainActivity extends ListActivity {
   
        //private static final String MEDIA_PATH = new String("/sdcard/");
        private static final String MEDIA_PATH = Environment.getExternalStorageState();
        private List<String> songs = new ArrayList<String>();

       
        @Override
    public void onCreate(Bundle icicle) {
        try {
                super.onCreate(icicle);
                setContentView(R.layout.activity_main);
                updateSongList();
        } catch (NullPointerException e) {
                e.printStackTrace();
        }
    }
   
    public void updateSongList() {
        File home = new File(MEDIA_PATH);
                if (home.listFiles( new Mp3Filter()).length > 0) {
                for (File file : home.listFiles( new Mp3Filter())) {
                        songs.add(file.getName());
                }
               
                ArrayAdapter<String> songList = new ArrayAdapter<String>(this,R.layout.song_item,songs);
                setListAdapter(songList);
                }      
    }
   
        @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
                Toast.makeText(getApplicationContext(), MEDIA_PATH + songs.get(position), Toast.LENGTH_LONG).show();   
        }
}

ma quando avvio il programma non mi visualizza niente!!!

dove sbaglio!!???
« Ultima modifica: 08 Gennaio 2014, 19:41:16 CET da paul78, Reason: Merged DoublePost »
tutti possiamo programmare...basta volerlo!!!