不太确定如何解释这一点,但会尽力而为。
我在我的 Android 项目中创建了一个数据库:
公共(public)类 FootySortItDatabase 扩展了 SQLiteOpenHelper {
private static final String DATABASE_NAME = "FootySortItDatabase";
private static final int DATABASE_VERSION = 1;
public FootySortItDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
final String SQL_CREATE_PLAYER_TABLE = "CREATE TABLE " +
PlayerDetails.PlayerTableEntry.TABLE_NAME + "(" +
PlayerDetails.PlayerTableEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
PlayerDetails.PlayerTableEntry.COLUMN_PLAYER_NAME + " TEXT NOT NULL, " +
PlayerDetails.PlayerTableEntry.COLUMN_PLAYER_NUMBER + " TEXT NOT NULL, " +
PlayerDetails.PlayerTableEntry.COLUMN_IS_PLAYING + " INTEGER NOT NULL " +
");";
db.execSQL(SQL_CREATE_PLAYER_TABLE);
}
我已经制定了以下契约(Contract):
public static final class PlayerTableEntry implements BaseColumns{
public static final String TABLE_NAME = "playerTable";
public static final String COLUMN_PLAYER_NAME = "playerName";
public static final String COLUMN_PLAYER_NUMBER = "playerNumber";
public static final String COLUMN_IS_PLAYING = "isPlaying";
}
我调用一个传递数据库和详细信息数组的方法:
private SQLiteDatabase playerDatabase;
private Cursor getAllPlayers(){
playerDatabase = ComposeMessage.addPlayerToTheDatabase(playerDatabase, playerDataSet);
return playerDatabase.query(PlayerDetails.PlayerTableEntry.TABLE_NAME,
null,null,null,
null,null,null);
}
public static SQLiteDatabase addPlayerToTheDatabase(SQLiteDatabase playerDatabase, ArrayList<PlayerDetails> listGame) {
for (PlayerDetails i : listGame) {
ContentValues cv = new ContentValues();
cv.put(PlayerDetails.PlayerTableEntry.COLUMN_PLAYER_NAME, i.name);
cv.put(PlayerDetails.PlayerTableEntry.COLUMN_PLAYER_NUMBER, i.number);
playerDatabase.insert(PlayerDetails.PlayerTableEntry.TABLE_NAME, null, cv);
}
return playerDatabase;
}
然后,我将光标传递到我的 RecyclerView 中:
public PlayerListRecyclerViewAdapter(Context context, Cursor cursor, ArrayList<PlayerDetails> aPlayerList,
int count) {
playerDataSet = aPlayerList;
this.pCursor = cursor;
pContext = context;
但是我的 pCursor = 0。这意味着它们在表中没有行?
通过终端,我使用 adb 导航到数据库,在数据库上使用 SQLite3 搜索表的数据,但它不返回任何内容:
sqlite> .tables
android_metadata playerTable
sqlite> select * from playerTable;
sqlite>
当我调试时,我可以在插入部分看到 i.name 和 i.number 有数据并且“它看起来正在插入它”,但是为什么光标是 0 并且当我搜索数据时,为什么是它没有返回任何东西? 不知道如何克服这个...
最佳答案
关于java - 数据库中的数据未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49923694/