Note that there are some explanatory texts on larger screens.

plurals
  1. POAlphabetize queried Music Files in ListView
    text
    copied!<p>Ok so im making a media player app for android. everything was ok until now. so far i have a list view that shows all .mp3 files on ur sdcard(internal and external) and when playing show a music visualizer. but i cant for the life of me alphabetize the list. everything is dynamic so xml doesnt work here.</p> <pre><code> public class MusicPlayerActivity extends Activity { ListView musiclist; Cursor musiccursor; int music_column_index; int count; private Intent aIntent; public static String filename; private RelativeLayout mRelativeLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init_phone_music_grid(); mRelativeLayout = new RelativeLayout(this); setContentView(mRelativeLayout); mRelativeLayout.addView(musiclist); } public void init_phone_music_grid() { System.gc(); String[] projection = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.ALBUM }; Uri allsongsuri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; musiccursor = managedQuery(allsongsuri, projection , selection, null, null); count = musiccursor.getCount(); musiclist = (ListView) findViewById(R.id.PhoneMusicList); musiclist.setAdapter(new EfficientAdapter(getApplicationContext())); musiclist.setOnItemClickListener(musicgridlistener); } private OnItemClickListener musicgridlistener = new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position,long id) { System.gc(); music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA); musiccursor.moveToPosition(position); filename = musiccursor.getString(music_column_index); aIntent = new Intent(v.getContext(), AudioFX.class); aIntent.getStringExtra(filename); startActivity(aIntent); } }; class EfficientAdapter extends BaseAdapter { private Context mContext; public EfficientAdapter(Context c) { mContext = c; } public int getCount() { return count; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { System.gc(); String id = null; TextView tv; if (convertView == null) { tv = new TextView(mContext.getApplicationContext()); } else{ tv = (TextView) convertView; } musiccursor.moveToPosition(position); music_column_index = musiccursor .getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE); id = musiccursor.getString(music_column_index); tv.setText(id); tv.setTextSize(20); return tv; }}} </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload