我试图让这段代码根据游戏中玩家的数量返回 SQLite 数据库中每个玩家的分数和姓名,因此如果有 4 行,则返回最后 4 行,如果有 2 行,则返回最后 2 行。
package dev.owen.a22006760;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.TextView;
public class GameComplete extends AppCompatActivity {
DBHandler dbHandler;
GameMaker get = new GameMaker();
int PlayerCount = GameMaker.GetPlayers();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_complete);
dbHandler = new DBHandler(this);
SQLiteDatabase db = dbHandler.getReadableDatabase();
// Define your table and column names from DBHandler
String tableName = DBHandler.tableName;
String columnName = DBHandler.DBName;
String columnScore = DBHandler.DBTotal;
// Query the last 4 rows
String query = "SELECT " + DBHandler.DBId + ", " + columnName + ", " + columnScore + " FROM " + tableName +
" ORDER BY " + DBHandler.DBId + " DESC LIMIT " + ;
Cursor cursor = db.rawQuery(query, null);
// Process the results
StringBuilder resultString = new StringBuilder();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(DBHandler.DBId));
String name = cursor.getString(cursor.getColumnIndex(columnName));
String score = cursor.getString(cursor.getColumnIndex(columnScore));
resultString.append("ID: ").append(id).append(", Name: ").append(name)
.append(", Score: ").append(score).append("\n");
}
// Close the cursor and database
cursor.close();
db.close();
// Use the resultString as needed
String finalResult = resultString.toString();
TextView Results = findViewById(R.id.ResultsLab);
Results.setText(finalResult);
}
}
这是我当前执行此操作的代码,但光标一直指向-1,我不知道如何修复它,这是我用于获取金额的代码的布局。
我希望代码能够输出数据库中最后 4 位玩家的总得分和姓名。所以..
4 号玩家 4. 21
5 名玩家 1. 15
6 玩家 2. 20
7 玩家 3. 19
8 玩家 1. 11
(侧面没有索引)
我试图将其放入一个字符串中,然后将其放入 Android Studio 上的 TextView 中。没有
查询看起来不正确。 在单词
LIMIT
之后应该有一个数字。
如果您不需要限制,请删除 LIMIT
这个词。