Android_小账本_筛选功能的实现

Posted XiaoGao128

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android_小账本_筛选功能的实现相关的知识,希望对你有一定的参考价值。

昨天对小账本的相关功能做了完善,新增了筛选功能。

 

 支持对类型、收支项、日期进行修改。

 但暂时尚不完善,只能针对相关小项进行筛选,无法连续对小项的结果进行筛选。这一功能预计在本周三进行完善。

相关代码

 public String[] readCord_select() {
        SQLiteUserChager sqLiteUserChager = new SQLiteUserChager(getContext(), "Userr", null, 1);
        SQLiteDatabase sqLiteDatabase = sqLiteUserChager.getReadableDatabase();
        number=0;
        if (group.length() < 3) {
            Cursor cursor;
            if (Integer.parseInt(group) == 1) {
                cursor = sqLiteDatabase.rawQuery("select * from Cord where inout=? and username=?", new String[]{select[1][Integer.parseInt(item)],nowusername});
            } else {
                cursor = sqLiteDatabase.rawQuery("select * from Cord where type=? and username=?", new String[]{select[2][Integer.parseInt(item)],nowusername});
            }
            String[] strings = new String[count = cursor.getCount()];
            int i = 0;
            if (cursor.moveToNext())
                do {
                    number+=Double.parseDouble(cursor.getString(cursor.getColumnIndex("number")));
                    String[] strings1 = new String[7];
                    strings1[0] = cursor.getString(cursor.getColumnIndex("date"));
                    strings1[1] = cursor.getString(cursor.getColumnIndex("type"));
                    strings1[2] = cursor.getString(cursor.getColumnIndex("inout"));
                    strings1[3] = cursor.getString(cursor.getColumnIndex("number"));
                    strings1[4] = cursor.getString(cursor.getColumnIndex("info"));
                    strings1[5] = cursor.getString(cursor.getColumnIndex("username"));
                    strings1[6] = cursor.getString(cursor.getColumnIndex("id"));
                    arr.add(strings1);
                    strings[i] = "我" + cursor.getString(cursor.getColumnIndex("date")) +
                            " 在" + cursor.getString(cursor.getColumnIndex("type")) +
                            "上" + cursor.getString(cursor.getColumnIndex("inout")) +
                            "了" + cursor.getString(cursor.getColumnIndex("number")) + "元";
                    i++;
                } while (cursor.moveToNext());
            cursor.close();
            sqLiteDatabase.close();
            sqLiteUserChager.close();
            tv_sum.setText("总收支:"+number);
            return strings;
        } else {                                                                                     //dateselect
            String[] min = group.split("/");
            String[] max = item.split("/");
            Log.d("----max", max[0] + "/" + max[1] + "/" + max[2]);
            Log.d("----min", min[0] + "/" + min[1] + "/" + min[2]);
            Cursor cursor = sqLiteDatabase.rawQuery("select * from Cord where username=?", new String[]{nowusername});
            String[] strings = new String[cursor.getCount() + 8000];
            while (cursor.moveToNext()) {
                String date = cursor.getString(cursor.getColumnIndex("date"));
                String[] dats = date.split("/");
                if (Integer.parseInt(dats[0]) > Integer.parseInt(min[0]) && Integer.parseInt(dats[0]) < Integer.parseInt(max[0])) {
                    String[] strings1 = new String[7];
                    number+=Double.parseDouble(cursor.getString(cursor.getColumnIndex("number")));
                    strings1[0] = cursor.getString(cursor.getColumnIndex("date"));
                    strings1[1] = cursor.getString(cursor.getColumnIndex("type"));
                    strings1[2] = cursor.getString(cursor.getColumnIndex("inout"));
                    strings1[3] = cursor.getString(cursor.getColumnIndex("number"));
                    strings1[4] = cursor.getString(cursor.getColumnIndex("info"));
                    strings1[5] = cursor.getString(cursor.getColumnIndex("username"));
                    strings1[6] = cursor.getString(cursor.getColumnIndex("id"));
                    arr.add(strings1);
                    strings[i] = "我" + cursor.getString(cursor.getColumnIndex("date")) +
                            " 在" + cursor.getString(cursor.getColumnIndex("type")) +
                            "上" + cursor.getString(cursor.getColumnIndex("inout")) +
                            "了" + cursor.getString(cursor.getColumnIndex("number")) + "元";
                    i++;
                } else if (Integer.parseInt(dats[0]) == Integer.parseInt(min[0])) {
                    if (Integer.parseInt(dats[1]) > Integer.parseInt(min[1]) && Integer.parseInt(dats[1]) < Integer.parseInt(max[1])) {
                        String[] strings1 = new String[7];
                        number+=Double.parseDouble(cursor.getString(cursor.getColumnIndex("number")));
                        strings1[0] = cursor.getString(cursor.getColumnIndex("date"));
                        strings1[1] = cursor.getString(cursor.getColumnIndex("type"));
                        strings1[2] = cursor.getString(cursor.getColumnIndex("inout"));
                        strings1[3] = cursor.getString(cursor.getColumnIndex("number"));
                        strings1[4] = cursor.getString(cursor.getColumnIndex("info"));
                        strings1[5] = cursor.getString(cursor.getColumnIndex("username"));
                        strings1[6] = cursor.getString(cursor.getColumnIndex("id"));
                        arr.add(strings1);
                        strings[i] = "我" + cursor.getString(cursor.getColumnIndex("date")) +
                                " 在" + cursor.getString(cursor.getColumnIndex("type")) +
                                "上" + cursor.getString(cursor.getColumnIndex("inout")) +
                                "了" + cursor.getString(cursor.getColumnIndex("number")) + "元";
                        i++;
                    } else if (Integer.parseInt(dats[1]) == Integer.parseInt(min[1])) {
                        if ((Integer.parseInt(dats[2]) >= Integer.parseInt(min[2]) && Integer.parseInt(dats[1]) < Integer.parseInt(max[1])) || (Integer.parseInt(dats[2]) >= Integer.parseInt(min[2]) && Integer.parseInt(dats[2]) <= Integer.parseInt(max[2]))) {
                            String[] strings1 = new String[7];
                            number+=Double.parseDouble(cursor.getString(cursor.getColumnIndex("number")));
                            strings1[0] = cursor.getString(cursor.getColumnIndex("date"));
                            strings1[1] = cursor.getString(cursor.getColumnIndex("type"));
                            strings1[2] = cursor.getString(cursor.getColumnIndex("inout"));
                            strings1[3] = cursor.getString(cursor.getColumnIndex("number"));
                            strings1[4] = cursor.getString(cursor.getColumnIndex("info"));
                            strings1[5] = cursor.getString(cursor.getColumnIndex("username"));
                            strings1[6] = cursor.getString(cursor.getColumnIndex("id"));
                            arr.add(strings1);
                            strings[i] = "我" + cursor.getString(cursor.getColumnIndex("date")) +
                                    " 在" + cursor.getString(cursor.getColumnIndex("type")) +
                                    "上" + cursor.getString(cursor.getColumnIndex("inout")) +
                                    "了" + cursor.getString(cursor.getColumnIndex("number")) + "元";
                            i++;
                        }
                    } else if (Integer.parseInt(dats[1]) == Integer.parseInt(max[1])) {
                        if ((Integer.parseInt(dats[2]) <= Integer.parseInt(max[2]) && Integer.parseInt(dats[1]) > Integer.parseInt(min[1])) || (Integer.parseInt(dats[2]) >= Integer.parseInt(min[2]) && Integer.parseInt(dats[2]) <= Integer.parseInt(max[2]))) {
                            String[] strings1 = new String[7];
                            number+=Double.parseDouble(cursor.getString(cursor.getColumnIndex("number")));
                            strings1[0] = cursor.getString(cursor.getColumnIndex("date"));
                            strings1[1] = cursor.getString(cursor.getColumnIndex("type"));
                            strings1[2] = cursor.getString(cursor.getColumnIndex("inout"));
                            strings1[3] = cursor.getString(cursor.getColumnIndex("number"));
                            strings1[4] = cursor.getString(cursor.getColumnIndex("info"));
                            strings1[5] = cursor.getString(cursor.getColumnIndex("username"));
                            strings1[6] = cursor.getString(cursor.getColumnIndex("id"));
                            arr.add(strings1);
                            strings[i] = "我" + cursor.getString(cursor.getColumnIndex("date")) +
                                    " 在" + cursor.getString(cursor.getColumnIndex("type")) +
                                    "上" + cursor.getString(cursor.getColumnIndex("inout")) +
                                    "了" + cursor.getString(cursor.getColumnIndex("number")) + "元";
                            i++;
                        }
                    }
                } else if (Integer.parseInt(dats[0]) == Integer.parseInt(max[0])) {
                    if (Integer.parseInt(dats[1]) < Integer.parseInt(max[1])) {
                        String[] strings1 = new String[7];
                        number+=Double.parseDouble(cursor.getString(cursor.getColumnIndex("number")));
                        strings1[0] = cursor.getString(cursor.getColumnIndex("date"));
                        strings1[1] = cursor.getString(cursor.getColumnIndex("type"));
                        strings1[2] = cursor.getString(cursor.getColumnIndex("inout"));
                        strings1[3] = cursor.getString(cursor.getColumnIndex("number"));
                        strings1[4] = cursor.getString(cursor.getColumnIndex("info"));
                        strings1[5] = cursor.getString(cursor.getColumnIndex("username"));
                        strings1[6] = cursor.getString(cursor.getColumnIndex("id"));
                        arr.add(strings1);
                        strings[i] = "我" + cursor.getString(cursor.getColumnIndex("date")) +
                                " 在" + cursor.getString(cursor.getColumnIndex("type")) +
                                "上" + cursor.getString(cursor.getColumnIndex("inout")) +
                                "了" + cursor.getString(cursor.getColumnIndex("number")) + "元";
                        i++;
                    } else if (Integer.parseInt(dats[1]) == Integer.parseInt(max[1])) {
                        if (Integer.parseInt(dats[2]) <= Integer.parseInt(max[2])) {
                            String[] strings1 = new String[7];
                            number+=Double.parseDouble(cursor.getString(cursor.getColumnIndex("number")));
                            strings1[0] = cursor.getString(cursor.getColumnIndex("date"));
                            strings1[1] = cursor.getString(cursor.getColumnIndex("type"));
                            strings1[2] = cursor.getString(cursor.getColumnIndex("inout"));
                            strings1[3] = cursor.getString(cursor.getColumnIndex("number"));
                            strings1[4] = cursor.getString(cursor.getColumnIndex("info"));
                            strings1[5] = cursor.getString(cursor.getColumnIndex("username"));
                            strings1[6] = cursor.getString(cursor.getColumnIndex("id"));
                            arr.add(strings1);
                            strings[i] = "我" + cursor.getString(cursor.getColumnIndex("date")) +
                                    " 在" + cursor.getString(cursor.getColumnIndex("type")) +
                                    "上" + cursor.getString(cursor.getColumnIndex("inout")) +
                                    "了" + cursor.getString(cursor.getColumnIndex("number")) + "元";
                            i++;
                        }
                    }
                }
            }
            cursor.close();
            sqLiteDatabase.close();
            sqLiteUserChager.close();
            ArrayList<String> arrayList = new ArrayList<>();
            for (int i = 0; i < strings.length; i++) {
                if (strings[i] != null) {
                    arrayList.add(strings[i]);
                }
            }
            String[] strings2 = new String[arrayList.size()];
            for (int i = 0; i < arrayList.size(); i++) {
                strings2[i] = arrayList.get(i);
            }
            Log.d("-----gropuitem", group + "+" + item);
            tv_sum.setText("总收支:"+number);
            return strings2;
        }

    }

  

 

以上是关于Android_小账本_筛选功能的实现的主要内容,如果未能解决你的问题,请参考以下文章

SQLite的LIKE语句实现字符片段筛选的功能

SQLite的LIKE语句实现字符片段筛选的功能

SQLite的LIKE语句实现字符片段筛选的功能

家庭记账小账本

家庭记账小账本Android studio

寒假家庭小账本——android studio安装及配置