Android - addTextChangedListener到自定义列表

时间:2017-06-16 07:46:58

标签: java android input addtextchangedlistener

我一直在关注教程,并提出了一种在我的设备上查看音乐的方法。

String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";

    String[] proj = { MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.DATA,
            MediaStore.Audio.Media.DISPLAY_NAME,    

    Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    String sortOrder = MediaStore.Audio.Media.DISPLAY_NAME + " ASC";
    musiccursor = getContentResolver().query(uri,proj, selection, null, sortOrder); 

    inputSearch = (EditText) findViewById(R.id.inputSearch);
    musiclist = (ListView)findViewById(R.id.listPage2);
    musiclist.setAdapter(new MusicListAssignPage2.MusicAdapter(getApplicationContext())); 

我现在希望能够有一个EditText,我可以搜索音乐,这样我就能更快地找到它。我遵循了本教程:http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/但我完全迷失了如何将其应用到我当前的应用程序。

    adapter = new ArrayAdapter<String>(this, R.layout.activity_music_list_assign_page2, R.id.inputSearch, proj);
    musiclist.setAdapter(adapter);

    /**
     * Enabling Search Filter
     * */
    inputSearch.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
            // When user changed the Text
            MusicListAssignPage2.this.adapter.getFilter().filter(cs);
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                      int arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
        }
    });

我已经尝试过上面这段代码,但之后我的应用程序运行了但是没有显示我设备中的歌曲,只显示proj []字符串而不是我设备上的所有歌曲。

我知道我没有正确应用这个。有什么帮助吗?

0 个答案:

没有答案