我正在列出大约100多个项目,我正在构建一个多选项列表,用户可以从中选择所需的项目。 我创建了具有多选项选择的列表视图,但滚动100个项目对于用户来说太复杂了。
有没有办法将搜索框放在列表视图的顶部,这样在搜索框中输入文字后,用户只会看到相关项目并可以选择多项选择?
答案 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);
}
});