Все, что мне нужно сделать, это получить возвращаемое значение из вставки как long.Я получил это, но это не работает, я возвращаю 0 из возвращенного значения.Я использую DAO, Repository и ViewModel, как указано в Google CodeLabs .Я следил за этим постом Rowid после вставки в комнате .
Класс игрока
@Entity(tableName = "player_table")
public class Player {
@PrimaryKey(autoGenerate = true)
private long id;
@NonNull
@ColumnInfo(name = "username")
private String username;
}
DAO
@Insert
long insert(Player player);
Хранилище
public long insert(Player player) {
new insertAsyncTask(mPlayerDao).execute(player);
rowId = player.getId();
return rowId;
}
ViewModel
public long insert(Player player){
rowId = mRepository.insert(player);
return rowId;
}
Активность
String playerString = editTextUsername.getText().toString();
Player player = new Player(playerString);
long rowId = mDreamViewModel.insert(player);