0

我用几张表创建了数据库,得到了一张名为朋友的表。一个朋友的开支很少,有些开支可能会与另一个朋友分摊。现在我正在尝试删除一个朋友,我想做的是当朋友与另一个朋友分享费用时,与另一个朋友分享的朋友的费用将添加到另一个朋友,并且费用不会被删除。然后,由于朋友的费用很多,直接删除了没有与其他朋友分享的费用,并且不会添加到任何朋友。现在的问题是,当我尝试将费用添加给另一个朋友时,它不起作用。而且我没有收到任何错误。

这是我的代码:我认为问题发生在 if(sharerList.size()>1)....,因为其余代码运行良好。

  public void deleteFriend(String id) {
    Log.d(LOGCAT, "delete");
    SQLiteDatabase database = this.getWritableDatabase();
    ArrayList<HashMap<String, String>> wordList = new ArrayList<HashMap<String, String>>();
    String selectQuery = "SELECT * FROM FriendsExpenses WHERE friendId='" + id + "'";
    SQLiteDatabase databaseread = this.getReadableDatabase();
    Cursor cursor = databaseread.rawQuery(selectQuery, null);
    if (cursor.moveToFirst()) {
        do {
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("expenseId", cursor.getString(0));
            wordList.add(map);
        } while (cursor.moveToNext());
    }
    for (int a=0; a<wordList.size();a++){
        HashMap<String, String> ValexpenseId = wordList.get(a);
        for (Entry<String, String> entry : ValexpenseId.entrySet()) {
            String value = entry.getValue();
            String selectQuery2 = "SELECT * FROM FriendsExpenses WHERE expenseId='" + value + "'";
            SQLiteDatabase databaseread2 = this.getReadableDatabase();
            Cursor cursor2 = databaseread2.rawQuery(selectQuery2, null);
            ArrayList<HashMap<String, String>> sharerList = new ArrayList<HashMap<String, String>>();
            if (cursor2.moveToFirst()) {
                do {
                    HashMap<String, String> map = new HashMap<String, String>();
                    map.put("friendId", cursor2.getString(0));
                    wordList.add(map);
                } while (cursor2.moveToNext());
            }
            else{};
            if (sharerList.size() > 1){
                String selectQuery3 = "SELECT expenseTotal FROM expenses WHERE expenseId='" + value + "'";
                SQLiteDatabase databaseread3 = this.getReadableDatabase();
                Cursor cursor3 = databaseread3.rawQuery(selectQuery3, null);
                String expenseTotal = null;
                if (cursor3.moveToFirst()) {
                    do {
                        expenseTotal = cursor3.getString(cursor3.getColumnIndex("expenseTotal"));
                    } while (cursor3.moveToNext());
                }
                for (int b=0; b<sharerList.size();b++){
                    HashMap<String, String> ValfriendId = sharerList.get(b);
                    for (Entry<String, String> entry2 : ValfriendId.entrySet()) {
                        String value2 = entry2.getValue();
                        String currentSpend = currentSpending(value2);
                        double currentSpending = (Double.parseDouble(currentSpend));
                        double expTotal = (Double.parseDouble(expenseTotal));
                        double newSpending = currentSpending + ((expTotal/sharerList.size()) /sharerList.size()-1);
                        updateSpending(value2, newSpending);
                    }
                }
            }
            else
            {
                String deleteQuery = "DELETE FROM expenses where expenseId='" + value + "'";
                Log.d("query", deleteQuery);
                database.execSQL(deleteQuery);
            }               
        }
    }
    String deleteQuery = "DELETE FROM friends where friendId='" + id + "'";
    String deleteQuery2 = "DELETE FROM FriendsExpenses where friendId='" + id + "'";
    Log.d("query", deleteQuery2);
    Log.d("query", deleteQuery);
    database.execSQL(deleteQuery2);
    database.execSQL(deleteQuery);
}
4

1 回答 1

0

sharerList是空的,因为您从不添加任何条目。

可能还有其他复制/粘贴错误,例如getString(0).SELECT *

于 2013-11-11T17:39:09.577 回答