【发布时间】:2020-07-01 08:39:54
【问题描述】:
这是我在这里的第一个问题,我是编码初学者,如果我的问题不是很清楚,请原谅我。
我已将工资存储在名为“工资”的 Room 数据库列中,数据类型为 double。有不同日子的工资,我想在我的活动中显示这些双倍数字的总数。如果尝试了许多不同的方法来做到这一点,但我无法让它在没有不同错误的情况下工作。
如果我可以将该总和存储到一个变量中,这样我就可以轻松地使用它,并且可能会在必要时从中减去一些值。
我使用 Repository 和 ViewModel 来访问我的数据库,并使用 RecyclerView、Adapter 和 CardView 在我的 MainActivity 中显示不同的数据。我希望我不需要使用这些来访问这个总和数,而是尽可能直接地访问它。
这是我的@entity
@Entity (tableName = "shift_table")
public class Shift implements Serializable {
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = "date")
private String date;
@ColumnInfo(name = "start")
private String start;
@ColumnInfo(name = "end")
private String end;
@ColumnInfo (name = "hours")
private String hours;
@ColumnInfo (name = "wage")
private double wage;
public Shift(String date, String start, String end, String hours, double wage) {
this.date = date;
this.start = start;
this.end = end;
this.hours = hours;
this.wage = wage;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public String getDate() {
return date;
}
public String getStart() {
return start;
}
public String getEnd() {
return end;
}
public String getHours() {
return hours;
}
public double getWage() {
return wage;
}
}
这是我的@Dao
@Dao
public interface ShiftDao {
@Insert
void insert (Shift shift);
@Update
void update (Shift shift);
@Delete
void delete (Shift shift);
@Query("DELETE FROM shift_table")
void deleteAllShifts();
@Query("SELECT * FROM shift_table ORDER BY id DESC")
LiveData<List<Shift>> getAllShifts();
@Query("SELECT SUM(wage) FROM shift_table")
What here?
}
如何将 SUM 从工资列获取到变量并在 TextView 中显示?
【问题讨论】:
-
LiveData<Long> getSum(); -
@uneq95 对于 double 类型的列值,我们无法正确存储在 Long 类型中。
标签: java android android-room