Android (安卓)列表搜索,查询

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

                }
            });
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值