使用Android中的搜索框创建多选列表视图

时间:2012-01-05 04:21:56

标签: android listview

我正在列出大约100多个项目,我正在构建一个多选项列表,用户可以从中选择所需的项目。 我创建了具有多选项选择的列表视图,但滚动100个项目对于用户来说太复杂了。

有没有办法将搜索框放在列表视图的顶部,这样在搜索框中输入文字后,用户只会看到相关项目并可以选择多项选择?

3 个答案:

答案 0 :(得分:2)

  

有没有办法将搜索框放在列表视图的顶部   在搜索框中键入文本后,用户将只看到相关项目   并且可以做出多项选择吗?

是的,您可以实现Text-watcher类。 在搜索编辑文本中,您必须设置addTextChange Event并传递文本观察程序对象。

现在在OnTextChanged()类的TextWatcher中,您必须从数据源中获取相关数据,然后按adapter.NotifyDatasetChanged()刷新适配器。

修改

现在,对于Multiple selection List-view,您可以创建一个list-row layout,其中只有一个Checkbox。在您的课程中创建一个Adapter的课程。您可以创建Base-Adapter并使用getView()方法对list-row进行通知,并在check-box上设置文字并设置根据您的选择<{1}}的{​​{1}}属性

答案 1 :(得分:0)

是, 您可以在listview的顶部使用 AutoCompleteTextView 或实现 EditText的onTextChangeListener 。您可以将listview的项目添加到适配器中的AutoCompleteTextView。

希望你得到我所说的......

答案 2 :(得分:0)

这是我试过的一些代码..它可能有帮助

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

                        len=actv.getText().length();

                        for(int i=0;i<content.size();i++)
                        {
                            if(len<=content.get(i).length())
                            {
                                if(actv.getText().toString().trim().equalsIgnoreCase((String) content.get(i).subSequence(0, len)))
                                {

                                    arr_sort.add(content.get(i));

                                }


                            }

                        }

                        adapter=new ArrayAdapter<String>(MyListDemoActivity.this,android.R.layout.simple_list_item_1,arr_sort);
                        setListAdapter(adapter);
                    }
                });