android - 如何在Android中将两个双打乘以双打?
问题描述
我想将两个双倍值相乘并显示其结果。这里 c1= 10.0 and dis or condition1=1.82 and inc=4.00 and inac== 15.00. 我检查了吐司中的每个变量。每个变量都在赋予价值。我认为问题在于乘法。
db=FirebaseDatabase.getInstance().getReference().child("ServiceConsumers").child("distance");
db.child(currentUser).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
dis=dataSnapshot.child("distance").getValue().toString();
Toast.makeText(getApplicationContext(), "dis" + dis,Toast.LENGTH_LONG).show();
conditn1=Double.valueOf(dis);
Toast.makeText(getApplicationContext(), "conditn1" +conditn1,Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
if (conditn1 >= c1){
double total= conditn1 * inac;
Toast.makeText(getApplicationContext(), "pay" + total, Toast.LENGTH_LONG).show();
paymnt.setText(String.valueOf(total));
} else {
if (conditn1 <= c1){
double mult=conditn1*inc;
//String tot=String.valueOf(conditn1 * inc);
Toast.makeText(getApplicationContext(), "payi = " + mult, Toast.LENGTH_LONG).show();
paymnt.setText(String.valueOf(mult));
}
}
rate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getApplicationContext(), RateProvider.class);
intent.putExtra("prvdrName", value3);
startActivity(intent);
}
});
}
解决方案
供您参考,Firebase 的几乎每个函数都是异步函数。
所以你应该在onDataChange方法中进行计算。
所以你的代码将是
db = FirebaseDatabase.getInstance().getReference().child("ServiceConsumers").child("distance");
db.child(currentUser).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
dis = dataSnapshot.child("distance").getValue().toString();
Toast.makeText(getApplicationContext(), "dis" + dis, Toast.LENGTH_LONG).show();
conditn1 = Double.valueOf(dis);
Toast.makeText(getApplicationContext(), "conditn1" + conditn1, Toast.LENGTH_LONG).show();
if (conditn1 >= c1) {
double total = conditn1 * inac;
Toast.makeText(getApplicationContext(), "pay" + total, Toast.LENGTH_LONG).show();
paymnt.setText(String.valueOf(total));
} else {
if (conditn1 <= c1) {
double mult = conditn1 * inc;
//String tot=String.valueOf(conditn1 * inc);
Toast.makeText(getApplicationContext(), "payi = " + mult, Toast.LENGTH_LONG).show();
paymnt.setText(String.valueOf(mult));
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
推荐阅读
- javascript - 如何在 Discord.js 中添加错误消息?
- javascript - React Native Web - 当前未启用对实验性语法“jsx”的支持
- reactjs - 在反应多选下拉列表中,我想在同一级别显示名称和电子邮件以及复选框
- sql-server - SSIS 动态列名映射
- elasticsearch - 在 Filebeat 中使用模块的正确方法
- php - 如何通过php在另一个目录中找到任何重复的.tpl文件?
- android - Google Play 管理中心中的托管发布
- laravel - 为什么当我将 yajra-datatable 用于 laravel 时,链接有时会加倍?
- python - Discord.py 创建不断变化的角色颜色
- python - 在 python 和 C++ 之间传递变量(嵌入,而不是扩展)