首页 > 解决方案 > 如何在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);
            }
        });


    }

标签: android

解决方案


供您参考,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) {

 }
});

推荐阅读