该应用程序正在构建,没有错误,但是在运行时在logcat中出现以下错误:
java.lang.NullPointerException:尝试在com.bwae.kuja.Main2Activity.onDataChange上的空对象引用上调用虚拟方法'int java.lang.Integer.intValue()'。
我还收到了警告:
将ds.child(“ Price).getValue(Integer.class)拆箱可能会产生java.lang.NullPointerException。
我对使用整数并不陌生,因此请对我的代码进行必要的编辑,请帮忙:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
mda = FirebaseDatabase.getInstance().getReference().child("Cart");
ValueEventListener eventListener = mda.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
int sum = 0;
for (DataSnapshot ds : dataSnapshot.getChildren()) {
int pvalue = ds.child("Price").getValue(Integer.class);
sum += pvalue;
if (sum < 100) {
Toast.makeText(getApplicationContext(), "success", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "sorry", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage());
}
});
下面的图片是我的数据库的视图。我正在尝试获取价格下的数字的总值,例如99 + 66
如果总数是根据数据库中的子项(价格)计算得出的,如果总数小于100,我应该收到一条祝酒消息,说成功。