我正在尝试编写一个实现了会议室数据库的android应用。我按照教程设置了数据库(老实说,我并没有完全理解我所做的一切)。
我从数据库中得到一个“ LiveData <列表<播放器>>”对象,该对象包含表中的所有“播放器”。 每个玩家都有一个名字和一个价格。
我想累加所有价格,并在添加新玩家时获得平均值。但是我的代码始终不考虑最后一个条目,只对列表中除最后一个玩家之外的所有内容进行计算。我的错误在哪里?
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == NEW_WORD_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
// Add a New Player to the Database
int preis = data.getExtras().getInt("EXTRA_REPLY_PREIS");
String name = data.getExtras().getString("EXTRA_REPLY_NAME");
Player player = new Player(name, preis);
mPlayerViewModel.insert(player);
// Populate the TextView "durchschnitt" with the average Value of all players, calculated in durchschnittspreis()
TextView durchschnitt = findViewById(R.id.tvPreis);
LiveData<List<Player>> alleSpieler = mPlayerViewModel.getAllPlayers();
durchschnitt.setText("" + durschnittspreis(alleSpieler));
} else {
Toast.makeText(
getApplicationContext(),
R.string.empty_not_saved,
Toast.LENGTH_LONG).show();
}
}
public int durschnittspreis(LiveData<List<Player>> players) {
int durchschnittspreis = 0;
int preis = 0;
for (int i = 0; i < players.getValue().size(); i++) {
preis = preis + players.getValue().get(i).getPreis();
System.out.println(preis);
durchschnittspreis = preis / players.getValue().size();
}
return durchschnittspreis;
}
答案 0 :(得分:0)
我没有足够的声誉来发表评论,但是您是否尝试过更改durschnittspreis函数中的循环条件,如:
for (int i = 0; i <= players.getValue().size(); i++)