0

edittext をクリックしてリスト ビューからアイテムをアルファベット順に検索したいのですが、これを行う方法がわかりません

serch_item.addTextChangedListener(new TextWatcher() {
                @Override


                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    // TODO Auto-generated method stub
                     text = serch_item.getText().toString();
                    //  approvedfriendList.setFilterText(text);
                }
                @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

                }
            });

search_item は edittext であり、ユーザーが edittext に name を入力した場合、その項目のみが表示または検索される場合、項目は基本アダプターを介して取得されます

4

1 に答える 1

1

EditText を 1 つ取り、onTextChangeListner フィルター リストビューで ...

private class ModelFilter extends Filter
        {

            @Override
            protected FilterResults performFiltering(CharSequence constraint) {

                constraint = constraint.toString().toLowerCase();
                System.out.println("In performFiltering()");
                FilterResults result = new FilterResults();
                if(constraint != null && constraint.toString().length() > 0)
                {
                    ArrayList<Model> filteredItems = new ArrayList<Model>();

                    for(int i = 0, l = allModelItemsArray.size(); i < l; i++)
                    {
                        Model m = allModelItemsArray.get(i);
                        if(m.getWebsite().toLowerCase().contains(constraint))
                            filteredItems.add(m);
                    }
                    result.count = filteredItems.size();
                    result.values = filteredItems;
                }
                else
                {
                    synchronized(this)
                    {
                        result.values = allModelItemsArray;
                        result.count = allModelItemsArray.size();
                    }
                }
                return result;
            }

            @SuppressWarnings("unchecked")
            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {

                filteredModelItemsArray = (ArrayList<Model>)results.values;
                System.out.println("In publishResults()");
                notifyDataSetChanged();
                clear();
                for(int i = 0, l = filteredModelItemsArray.size(); i < l; i++)
                    add(filteredModelItemsArray.get(i));
                //notifyDataSetInvalidated();
            }
       }

あなたの TexchangeListner

@Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                BookmarkManagerActivity.this.adapter.getFilter().filter(s);
                adapter.notifyDataSetChanged();
            }



            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
            }



            @Override
            public void afterTextChanged(Editable s) {


            }


        });
于 2013-05-21T09:30:06.397 に答える