从 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);
}
}
为了解决加法问题,只需将=+
改为+=
我在 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);
}
}
为了解决加法问题,只需将=+
改为+=