从 OnActivityResult 中求和值

Sum up value from OnActivityResult

我在 Activity A 中有一个列表视图。我想总结 return 从 Activity B 到 Activity A 的总金额,但我有不知道如何将它们相加。

 double sum =0;

public void onActivityResult(int requestCode, int resultCode, Intent data) { // receive from Activity B and populate ListView A
     if (resultCode == RESULT_OK) {
         if (requestCode == PROJECT_REQUEST_CODE) {
             double ReceiveAmount = data.getDoubleExtra("amount",0);
             sum = + ReceiveAmount;
            totalAmount.setText(sum+")
             }
         }
     }
 }

假设在 Activity B I return 数量 5,然后我再次转到 Activity B 和 return 值 10。我想要吐司显示值 15 而不是总是 5.

编辑

   @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) { // receive from Activity B and populate ListView A
            if (resultCode == RESULT_OK) {
                if (requestCode == PROJECT_REQUEST_CODE) {
                   double ReceiveAmount = data.getDoubleExtra("amount",0);
                    sum += ReceiveAmount;
                    if (mClickedPosition == -1) {  // if icon clicked
                        if (obj != null) {
                            obj.addNewItem(ReceiveAmount);
                            listview.setAdapter(obj);
             Toast.makeText(getApplicationContext(),sum+"",Toast.LENGTH_SHORT).show();
                            addOrRemoveFooter(sum);
                        }
                    } 
                }
            }
        }

  public void addOrRemoveFooter(double sum2) {
    if (search.size() == 0 && listview.getFooterViewsCount() > 0) {
        listview.removeFooterView(footerLayout);
        Toast.makeText(getApplication(),"In"+sum2+"",Toast.LENGTH_SHORT).show();
    } else if (listview.getFooterViewsCount() == 0 && search.size() > 0) {
        Toast.makeText(getApplication(),"Out"+sum2+"",Toast.LENGTH_SHORT).show();
        listview.addFooterView(footerLayout);
        listview.setAdapter(obj);
        totalAmount.setText(sum2 + "");
    }
    else
    {
        Toast.makeText(getApplicationContext(),"error",Toast.LENGTH_SHORT).show();
    }
}

toast 现在显示 15,但 setText 始终显示 5...为什么?

起初一切似乎都很好,因为它在 addOrRemoveFooter Toast.makeText(getApplication(),"Out"+sum2+"",Toast.LENGTH_SHORT).show(); 中显示 Out,但是当我第二次添加时它显示 error.

将您的金额值存储在 Sharedpreference 中。每次从 return 到 Activity A.

使其成为静态变量和

public static double sum =0;

而不是随时随地在应用程序中添加和 只显示在onActivityResult 不需要通过intent(确保使用后重新初始化)

首先像这样用 startActivityForResult 启动你的 activity。

private static final int RC_B = 123;
Intent intent = new Intent(ActivityA.this, ActivityB.class);    
activityA.startActivityForResult(intent, RC_B);

然后在 Activity B 重写 onFinish() 和 onFinish

@Override
public void finish() {
  Intent resultIntent = new Intent();
  resultIntent.putExtra("total", 45);  // For Example.
  setResult(RESULT_OK, resultIntent);
  super.finish();
}

然后在重写Activity后得到Activity A 并输入如下代码。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)         {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_OK && requestCode == RC_B) {
         // get your value of sum from intent
         total = intent.getIntExtra("total",0);
    }
}

为了解决加法问题,只需将=+改为+=