Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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
Java SQLite三列高分-Android_Java_Android_Sqlite - Fatal编程技术网

Java SQLite三列高分-Android

Java SQLite三列高分-Android,java,android,sqlite,Java,Android,Sqlite,我正在尝试实现一种方法,使我的头随着所有if-elseif-else和while循环旋转。我有一个SQLite数据库,有3列——自动增量、分数(长)和百分比(int)。百分比来自10个问题的正确性,分数将是0到1000之间的某个数字。所以在百分比上会有很多联系,而在分数上(可能)没有联系 高分按百分比排在第一位,然后在所有具有相同百分比值的记录中“打破平局”,然后按分数排序。这一切有意义吗?如果没有,让我知道,我会编辑并尝试更好地解释它 我的问题是,如果有人有任何建议或其他的例子,我可以按照这个

我正在尝试实现一种方法,使我的头随着所有if-elseif-else和while循环旋转。我有一个SQLite数据库,有3列——自动增量、分数(长)和百分比(int)。百分比来自10个问题的正确性,分数将是0到1000之间的某个数字。所以在百分比上会有很多联系,而在分数上(可能)没有联系

高分按百分比排在第一位,然后在所有具有相同百分比值的记录中“打破平局”,然后按分数排序。这一切有意义吗?如果没有,让我知道,我会编辑并尝试更好地解释它

我的问题是,如果有人有任何建议或其他的例子,我可以按照这个方法完成。还有,我这样做可以吗?我使用
rawQuery()
插入到表中,而不是使用
insert()
方法,因为我大部分时间都需要在特定索引处插入到数据库中。我也包括了我的插入方法

//Check if new record makes the top 10.
public int check(long score, int percentage) {
    Cursor c1 = db.rawQuery("SELECT " + PERCENTAGE + " FROM " + TABLE, null);
    Cursor c2 = db.rawQuery("SELECT " + SCORE + " FROM " + TABLE, null);
    if(c1 != null && c2 != null) {
        int i = 0;
        while(c1.moveToNext() == true) {
            int ii = 0;
            c1.moveToPosition(i);
            do {
                int x = c1.getInt(c1.getColumnIndex("PERCENTAGE"));
                if(x > percentage) {
                    db.rawQuery("INSERT INTO " + TABLE + "VALUES (" + i + ", " + score + ", " + percentage + ");", null);
                } else if (x < percentage ) {
                    i++;
                } else {
                    int y = c2.getInt(c2.getColumnIndex("SCORE"));
                    while(x == percentage) {
                        //ahhhh!





                    }
                        if(y > score) {
                            db.rawQuery("INSERT INTO " + TABLE + "VALUES (" + i + ", " + score + ", " + percentage + ");", null);
                        } else
                    if(c2.getCount() == 10) {
                        //Delete last record in high score and insert at index.
                        delete(10);
                        //db.rawQuery("DELETE FROM " + TABLE + " WHERE " + RANK + " = 10;", null);
                        db.rawQuery("INSERT INTO " + TABLE + "VALUES (" + i + ", " + score + ", " + percentage + ");", null);
                        return true;
                    } else {
                        //No deletion - just insert.
                        db.rawQuery("INSERT INTO " + TABLE + "VALUES (" + i + ", " + score + ", " + percentage + ");", null);
                        return true;
                    }
                } else {
                    return false;
                }
            } while (c2.moveToNext());
        } else {
            return false;
        }
    } else {
        return false;
    }
}

如果分数在0..1000和百分比之间,根据定义是在0..100之间,你为什么不简化自己,只计算排名=百分比*1001+分数,然后按排名排序?哇,我没有想到这一点。这就是我停下来问这个问题的原因——我知道必须有一个更简单的方法。谢谢你,走吧!
//Insert new record.
public long insert(long score, int percentage) {
    ContentValues values = new ContentValues();
    values.put(SCORE, score);
    values.put(PERCENTAGE, percentage);

    return db.insert(TABLE, null, values);
}