Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-SQLite删除和更新数据工作不正常_Android_Sqlite_Arraylist - Fatal编程技术网

Android-SQLite删除和更新数据工作不正常

Android-SQLite删除和更新数据工作不正常,android,sqlite,arraylist,Android,Sqlite,Arraylist,我用几个表创建了数据库,得到了一个名为friend的表。一个朋友的开销很少,有些开销可能会和另一个朋友分担。现在我正在尝试删除一个朋友,我正在尝试的是当该朋友与另一个朋友共享费用时,与另一个朋友共享的朋友的费用将添加到另一个朋友,并且该费用不会被删除。然后,不与其他朋友共享的费用将被直接删除,并且不会添加到任何朋友,因为该朋友有很多费用。现在的问题是,当我试图把费用加到另一个朋友身上时,它不起作用。我没有得到任何错误 这是我的代码:我认为问题发生在if(sharerList.size()>1)中

我用几个表创建了数据库,得到了一个名为friend的表。一个朋友的开销很少,有些开销可能会和另一个朋友分担。现在我正在尝试删除一个朋友,我正在尝试的是当该朋友与另一个朋友共享费用时,与另一个朋友共享的朋友的费用将添加到另一个朋友,并且该费用不会被删除。然后,不与其他朋友共享的费用将被直接删除,并且不会添加到任何朋友,因为该朋友有很多费用。现在的问题是,当我试图把费用加到另一个朋友身上时,它不起作用。我没有得到任何错误

这是我的代码:我认为问题发生在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);
}
public void deleteFriend(字符串id){
Log.d(LOGCAT,“删除”);
SQLiteDatabase=this.getWritableDatabase();
ArrayList wordList=新建ArrayList();
String selectQuery=“SELECT*FROM friendspenses,其中friendsid=”+id+“”;
SQLiteDatabase databaseread=this.getReadableDatabase();
Cursor Cursor=databaseread.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
做{
HashMap=newHashMap();
map.put(“expenseId”,cursor.getString(0));
添加(地图);
}while(cursor.moveToNext());
}
对于(int a=0;a 1){
String selectQuery3=“从expenseId='“+value+'”的费用中选择expenseTotal;
SQLiteDatabase databaseread3=this.getReadableDatabase();
游标cursor3=databaseread3.rawQuery(selectQuery3,null);
字符串expenseTotal=null;
if(cursor3.moveToFirst()){
做{
expenseTotal=cursor3.getString(cursor3.getColumnIndex(“expenseTotal”);
}while(cursor3.moveToNext());
}

for(int b=0;b
sharerList
为空,因为您从未添加任何条目

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