how to update listview based on edittext value in android

 ̄綄美尐妖づ 提交于 2019-12-10 21:46:25

问题


I have edittext and below that one listview now if need to search means based on text on edittext i need to update the list view.the listview values stored in arraylist


回答1:


This is the search function in my applicaton,hope u get him idea from it..

et_artists_searchWord.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub

            List<AdapterDTOArtist> list = filter(s.toString(),
                    mAdapterDTOsBackup, true);
            mAdapterDTOs.clear(); // <--- clear the list before add
            mAdapterDTOs.addAll(list); // <--- here is the double add if
                                        // you// do not clear before
            mLazyAdatper.setDataSet(mAdapterDTOs);
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

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

        }
    });

out side oncreate search method:

public static List<AdapterDTOArtist> filter(String string,
        Iterable<AdapterDTOArtist> iterable, boolean byName) {
    if (iterable == null)
        return new LinkedList<AdapterDTOArtist>();
    else {
        List<AdapterDTOArtist> collected = new LinkedList<AdapterDTOArtist>();
        Iterator<AdapterDTOArtist> iterator = iterable.iterator();
        if (iterator == null)
            return collected;
        while (iterator.hasNext()) {
            AdapterDTOArtist item = iterator.next();
            // if(item.getmTag_Name().startsWith(string))
            if (item.getmTag_Name().toLowerCase().startsWith(string)){
                // if
                // (item.getmTag_Name().toLowerCase(Locale.getDefault()).contains(string))
                collected.add(item);
            }
            else if(item.getmTag_Name().toUpperCase().startsWith(string)){
                collected.add(item);
            }
        }
        return collected;
    }
}


来源:https://stackoverflow.com/questions/22524367/how-to-update-listview-based-on-edittext-value-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!