Android Listview-多选&;可过滤
我正在尝试开发具有多个选择的Android Listview-多选&;可过滤,android,listview,search,filter,Android,Listview,Search,Filter,我正在尝试开发具有多个选择的列表视图,以及在列表视图中过滤文本 下面是我的代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.
列表视图
,以及在列表视图
中过滤文本
下面是我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
for (int i = 0; i < 20; i++) {
items.add("abc " + i);
}
editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
//if (isOpened) {
if (listadapter != null)
listadapter.getFilter().filter(s.toString().trim());
//}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
listView = (ListView) findViewById(R.id.listView);
listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
listadapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_multiple_choice, items);
listView.setAdapter(listadapter);
listView.setTextFilterEnabled(true);
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“替换为您自己的操作”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}
});
对于(int i=0;i<20;i++){
项目。添加(“abc”+i);
}
editText=(editText)findViewById(R.id.editText);
editText.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列,int start,int before,
整数计数){
//如果(等参线){
if(listadapter!=null)
listadapter.getFilter().filter(s.toString().trim());
//}
}
@凌驾
更改前的公共无效(字符序列、整数开始、整数计数、,
整数后){
}
@凌驾
公共无效后文本已更改(可编辑){
}
});
listView=(listView)findViewById(R.id.listView);
listView.setChoiceMode(AbsListView.CHOICE\u MODE\u MULTIPLE);
listadapter=new ArrayAdapter(MainActivity.this,android.R.layout.simple\u list\u item\u多项选择,items);
setAdapter(listadapter);
setTextFilterEnabled(true);
}
我选择了第1项。在搜索一些文本后,它会显示所选的搜索项。
有办法处理吗
检查图像
图像在哪里?@Amit我没想到你会问这种问题。您可以使用Adapter+ListView以任何方式进行设置。如果通过设置适配器在不同的布局中列出每个项目,则在项目上(位置)您可以筛选项目,也可以从该列表中选择多个项目。我不想这样做…更改搜索后,我将在该位置为该搜索选中复选框。图像在哪里?@Amit我不希望您提出此类问题。您可以使用Adapter+ListView以任何方式进行设置。如果您使用set adapter以不同的布局列出每个项目,则在项目(位置)上,您可以筛选项目,并可以从该列表中选择多个项目。我不希望以这种方式…更改搜索后,我将在该位置选中该搜索的复选框。