如何在 Android 的列表视图中显示音频文件?

Rah*_*hul 5 audio android listview android-layout

我在SD 卡上的特定目录中有一些音频文件。我需要在 Android 的列表视图中显示他们的名字,如果我想播放或删除该特定文件,我可以通过该列表视图执行此操作吗?我该怎么做?

public class MyPerformanceArrayAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[] values;

    public MyPerformanceArrayAdapter(Context context, String[] values) {
        super(context, R.layout.main, values);
        this.context = context;
        this.values = values;
    }           

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.main, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.label);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
        textView.setText(values[position]);
        // Change the icon for Windows and iPhone
        String s = values[position];
        if (s.startsWith("Windows7") || s.startsWith("iPhone")
                || s.startsWith("Solaris")) {
            //imageView.setImageResource(R.drawable.no);
        } else {
            //imageView.setImageResource(R.drawable.ok);
        }    
        return rowView;
    }
}

public class SimpleListActivity extends ListActivity {
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
                "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
                "Linux", "OS/2" };
        MyPerformanceArrayAdapter adapter = new MyPerformanceArrayAdapter(this, values);
        setListAdapter(adapter);
    }    
}
Run Code Online (Sandbox Code Playgroud)

这段代码是一个简单的列表视图。我需要从特定目录中获取它们的名称到适配器类。我该怎么做?

如果我对该特定文件进行任何更改,这些应该反映在列表视图中。

Hul*_*ulk 6

public class ReadAllFilesFromPathActivity extends Activity {
    /** Called when the activity is first created. */
    private List<String> myList;
    File file;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ListView listView = (ListView) findViewById(R.id.mylist);
        myList = new ArrayList<String>();

        File directory = Environment.getExternalStorageDirectory();
        file = new File( directory + "/Test" );
        File list[] = file.listFiles();

        for( int i=0; i< list.length; i++)
        {
                myList.add( list[i].getName() );
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, myList);
        listView.setAdapter(adapter); //Set all the file in the list.
    }
}
Run Code Online (Sandbox Code Playgroud)