【发布时间】:2015-07-21 21:11:49
【问题描述】:
Log 说:
D/CartActivity-onCreate(18171): onCreate
D/CartActivity-TOTAL-InsideFORLOOP:(18171): 0.0
D/CartActivity-onResume(18171): onResume
D/CartAdapter-TOTAL:(18171): 12.95
如上图所示,for循环首先在 CartActivity 中执行,在 CartActivity 的 onResume() 方法执行后,CartAdapter 正在执行这一行,因此因为我在 For loop 内的 CartActivity 中将 0.0 作为 Total 的值
原因不是我要添加到数据 ArrayList 的位置,问题是 CartActivity 在 CartAdapter 执行之前执行 (where i am getting value for Total) (where i am setting value for Total)
那么我必须做什么,如果我想在执行 CartActivity
的onCreate() 方法之前想在下面调用
CartArrayList.cartArraylist.get(position).setTotal(totalPrice);
CartActivity.java:
public class CartActivity extends Activity {
.....
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("CartActivity-onCreate", "onCreate");
setContentView(R.layout.activity_cart);
.......
adapter = new CartAdapter(getApplicationContext(), R.layout.adapter_cart, CartArrayList.cartArraylist);
for (int d = 0; d < CartArrayList.cartArraylist.size(); d++) {
subTotal = subTotal + CartArrayList.cartArraylist.get(d).getTotal();
Log.d("CartActivity-TOTAL-InsideFORLOOP:", String.valueOf(CartArrayList.cartArraylist.get(d).getTotal()));
}
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
textSubTotal.setText(decimalFormat.format(subTotal));
}
@Override
public void onResume() {
super.onResume();
Log.d("CartActivity-onResume", "onResume");
}
}
CartAdapter.java:
public class CartAdapter extends BaseAdapter {
.....
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
......
totalPrice = cart.getQuantity() * cart.getPrice();
CartArrayList.cartArraylist.get(position).setTotal(totalPrice);
Log.d("CartAdapter-TOTAL:", String.valueOf(CartArrayList.cartArraylist.get(position).getTotal()));
.....
return convertView;
}
}
【问题讨论】:
-
但是你为什么在
onCreate()里刷新呢? -
这是什么意思?如何刷新ArrayList
-
您可能想在切换活动时尝试使用 onResume() 方法。 stackoverflow.com/questions/9776059/…
-
Oncreate() 只调用一次,而不是使用 onResume()
-
我在这里寻找问题。有人可以告诉我
?在哪里吗,我的意思是我应该能够自己找到这句话和问题……还在寻找……
标签: android android-activity android-listview interface baseadapter