【问题标题】:Create multi choice list view with search box in Android [closed]在Android中使用搜索框创建多选列表视图[关闭]
【发布时间】:2016-06-25 20:58:01
【问题描述】:

我有一个包含大约 100 多个项目的列表,我正在构建一个多选列表,用户可以从中选择他需要的任意数量的项目。 我创建了带有多项选择的列表视图,但滚动 100 个项目对用户来说太复杂了。

有没有办法将搜索框放在列表视图的顶部,以便在搜索框中输入文本时,用户只会看到相关的项目,并且可以从中进行多项选择?

【问题讨论】:

    标签: android listview


    【解决方案1】:

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

    是的,您可能必须实现 Text-watcher 类。 在搜索编辑文本中,您必须设置 addTextChange Event 并在其中传递 text-watcher 对象。

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

    编辑

    现在对于Multiple selection List-view,您可以创建一个list-row layout,其中包含一个Checkbox。在你的类中创建一个Adapter的类。你可以创建一个Base-Adapter,它的getView()方法膨胀list-row并设置check-box上的文本并设置checkboxchecked属性根据您的选择

    【讨论】:

    • 感谢 dharmendra 的回复,实际上我可以将搜索框添加到列表视图中,但不能用于多选列表视图.. 请让我知道如何添加多选选项
    【解决方案2】:

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

    希望你明白我所说的......

    【讨论】:

    【解决方案3】:

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

    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);
                        }
                    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      相关资源
      最近更新 更多