1.首先正常解串,显示列表数据,在显示列表中适配的时候把数据存到一个新的allList集合中,然后点击事件,首先判断allList.size > 0的话就存到第二个新的querList集合中,然后清空,再用allList循环,循环里获取数据里的姓名(因为要通过姓名查询、搜索;也可以其他属性),再获取输入框里的内容,
// 然后把输入的内容存到pattern中
Pattern compile = Pattern.compile(s);
// 再用上面的对象点mather再把输入的内容作为参数放里面返回对象
Matcher matcher = compile.matcher(setname);
2.然后再用返回的数据判断
// 用返回的对象判断find
if (matcher.find()) {
// 如果你输入的内容里面有就用 添加到 queryList集合中
queryList.add(datum);
}
3.最后在循环外面就正常清空,添加,刷新
myAdapter.getData().clear();
myAdapter.getData().addAll(queryList);
myAdapter.notifyDataSetChanged();
4.完整功能
queryList = new ArrayList<>();
allList = new ArrayList<>();
if (myAdapter == null) {
myAdapter = new MyAdapter(dataBeans);
// 解完数据后就直接存到一个新的集合allList里
allList.addAll(dataBeans);
oneRv.setAdapter(myAdapter);
oneDw.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToastUtils.showShort("定位");
// 然后判断allList 有东西
if (allList.size() > 0) {
// 再新建一个新集合queryList ,然后清除
queryList.clear();
// 再用allList for循环
for (FoodBean.DataBean datum : allList) {
// 循环获取姓名
String setname = datum.getSetname();
// 获取输入的控件id
String s = oneS.getText().toString();
// 然后把输入的内容存到pattern中
Pattern compile = Pattern.compile(s);
// 再用上面的对象点mather再把输入的内容作为参数放里面返回对象
Matcher matcher = compile.matcher(setname);
// 用返回的对象判断find
if (matcher.find()) {
// 如果你输入的内容里面有就用 添加到 queryList集合中
queryList.add(datum);
}
}
// 然后就正常的数据库清空,添加,刷新
myAdapter.getData().clear();
myAdapter.getData().addAll(queryList);
myAdapter.notifyDataSetChanged();
}
}
});
}