Cómo llamar a la clase del adaptador antes de la actividad
Log
dice:
D/CartActivity-onCreate(18171): onCreate
D/CartActivity-TOTAL-InsideFORLOOP:(18171): 0.0
D/CartActivity-onResume(18171): onResume
D/CartAdapter-TOTAL:(18171): 12.95
Como puede ver en el registro anterioren bucle se ejecuta primero en CartActivity y después de la ejecución deonResume()
método de CartActivity,CartAdapter está ejecutando esta línea, por lo tanto, estoy obteniendo0.0 como valor deTotal
enCarritoActividad dentroFor loop
La razón no es donde estoy agregando datos a ArrayList, el problema esCarritoActividad ejecuta (where i am getting value for Total
) antes deCartAdapter ejecución (where i am setting value for Total
)
Entonces, lo que tengo que hacer, si quisierame gusta llamar debajo de la línea antes de la ejecución deonCreate()
método deCarritoActividad
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;
}
}