Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to filter songs in listView
    primarykey
    data
    text
    <p>I have a listView filled up with all songs on sdcard, can i filter them by name using an ediText or something else (like a SearchBar) and update the listview?Thanks, this is how I fill up the listview:</p> <pre><code>@SuppressWarnings("deprecation") private void init_phone_music_grid() { System.gc(); String[] proj = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE }; musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, MediaStore.Audio.Media.DURATION + "&gt;= 120000", null, null); count = musiccursor.getCount(); musiclist = (ListView) findViewById(R.id.listView1); musiclist.setAdapter(new MusicAdapter(getApplicationContext())); musiclist.setOnItemClickListener(musicgridlistener); mMediaPlayer = new MediaPlayer(); } 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); String filename = musiccursor.getString(music_column_index); String canzone=filename.replace("/storage/sdcard0/", ""); canzone=canzone.replace("Music/", ""); canzone=canzone.replace("media/", ""); canzone=canzone.replace("Ringtones/", ""); t=(TextView) findViewById(R.id.textView2); t.setWidth(130); t.setSingleLine(true); t.setText(canzone); try { if (mMediaPlayer.isPlaying()) { mMediaPlayer.reset(); } mMediaPlayer.setDataSource(filename); mMediaPlayer.prepare(); mMediaPlayer.start(); } catch (Exception e) { } } }; public class MusicAdapter extends BaseAdapter { private Context mContext; public MusicAdapter(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.DISPLAY_NAME); id = musiccursor.getString(music_column_index); tv.setText(id); return tv; } } </code></pre> <p>This is the updated code:</p> <pre><code>protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_player); progressBar = (ProgressBar) findViewById(R.id.progressBar1); init_phone_music_grid(null); //Controllo(); edittext=(EditText) findViewById(R.id.editText1); edittext.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } @Override public void afterTextChanged(Editable arg0) { init_phone_music_grid(edittext.getText().toString()); } }); } @SuppressWarnings("deprecation") private void init_phone_music_grid(String a) { System.gc(); String sortOrder=null; if(a!=null){ sortOrder=MediaStore.Audio.Media.TITLE +a; } String[] proj = { MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE }; musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, MediaStore.Audio.Media.DURATION + "&gt;= 120000", null, sortOrder); count = musiccursor.getCount(); musiclist = (ListView) findViewById(R.id.listView1); musiclist.setAdapter(new MusicAdapter(getApplicationContext())); musiclist.setOnItemClickListener(musicgridlistener); mMediaPlayer = new MediaPlayer(); } 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); String filename = musiccursor.getString(music_column_index); String canzone=filename.replace("/storage/sdcard0/", ""); canzone=canzone.replace("Music/", ""); canzone=canzone.replace("media/", ""); canzone=canzone.replace("Ringtones/", ""); t=(TextView) findViewById(R.id.textView2); t.setWidth(130); t.setSingleLine(true); t.setText(canzone); try { if (mMediaPlayer.isPlaying()) { mMediaPlayer.reset(); } mMediaPlayer.setDataSource(filename); mMediaPlayer.prepare(); mMediaPlayer.start(); } catch (Exception e) { } } }; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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