2015-11-27 33 views
1

我正在創建Shopping Cart應用程序並獲取每個項目的圖像,名稱,價格,數量和總計,但沒有第一次獲得所有列表項的小計,而且當我致電再次購物車活動,然後獲得所有購物車項目的小計。BaseAdapter不更新活動中的值

注: 問題是活動調用第一則適配器因此我沒有得到的第一次總,我在適配器的總設定值。

CartActivity的整個代碼檢查here

CartAdapter的整個代碼檢查here

CartArrayList.java:

public class CartArrayList { 

    static ArrayList<Cart> cartArraylist = new ArrayList<Cart>(); 

} 

CartActivity.java

for(int d=0; d<CartArrayList.cartArraylist.size(); d++) { 

Log.d("ITEM-NAME:", CartArrayList.cartArraylist.get(d).getName().toString()); 

Log.d("ITEM-QUANTITY:", String.valueOf(CartArrayList.cartArraylist.get(d).getQuantity())); 

Log.d("ITEM-PRICE:", String.valueOf(CartArrayList.cartArraylist.get(d).getPrice())); 

Log.d("ITEM-TOTAL:", String.valueOf(CartArrayList.cartArraylist.get(d).getTotal())); 

subTotal = subTotal + CartArrayList.cartArraylist.get(d).getTotal(); 

Log.d("SUB TOTAL:", String.valueOf(subTotal)); 

} 

DecimalFormat decimalFormat = new DecimalFormat("0.00"); 

textSubTotal.setText(getResources().getString(R.string.Rs)+" "+decimalFormat.format(subTotal)); 

} 

CartAdapter.java:

 df = new DecimalFormat("0.00##"); 

     totalPrice = cart.getQuantity() * cart.getPrice(); 
     Log.d("Total:Adapter", String.valueOf(totalPrice)); 
     CartArrayList.cartArraylist.get(position).setTotal(totalPrice); 
     holder.textViewTotal.setText(context.getResources().getString(R.string.Rs)+" "+df.format(cart.getTotal()));  

我的問題是爲什麼我沒有得到值:

Log.d("ITEM-TOTAL:", String.valueOf(CartArrayList.cartArraylist.get(d).getTotal())); 

logcat的

11-27 13:03:16.518: D/ITEM-NAME:(4176): Item 1 
11-27 13:03:16.518: D/ITEM-QUANTITY:(4176): 1 
11-27 13:03:16.518: D/ITEM-PRICE:(4176): 999.0 
11-27 13:03:16.518: D/ITEM-TOTAL:(4176): 0.0 
11-27 13:03:16.518: D/SUB TOTAL:(4176): 0.0 

11-27 13:03:16.518: D/ITEM-NAME:(4176): Item 2 
11-27 13:03:16.518: D/ITEM-QUANTITY:(4176): 1 
11-27 13:03:16.518: D/ITEM-PRICE:(4176): 1900.0 
11-27 13:03:16.518: D/ITEM-TOTAL:(4176): 0.0 
11-27 13:03:16.518: D/SUB TOTAL:(4176): 0.0 

11-27 13:03:16.598: D/Total:Adapter(4176): 999.0 
11-27 13:03:16.608: D/Total:Adapter(4176): 1900.0 
+0

請發佈整個代碼與適配器代碼 – DroidDev

+0

@DroidDev我已經發布整個代碼,請檢查。 – Sophie

+0

@Sophie你在哪裏定義CartArrayList.cartArraylist? – Hardy

回答

0

@Sophie你正在進入總適配器,因爲你正在做這個

totalPrice = cart.getQuantity() * cart.getPrice(); 
    Log.d("Total:Adapter", String.valueOf(totalPrice)); 
    CartArrayList.cartArraylist.get(position).setTotal(totalPrice); 

- >你是設置總價格和然後你得到它使你第一次是設置總值或不請

for(int d=0; d<CartArrayList.cartArraylist.size(); d++) { 

     Log.d("ITEM-NAME:", CartArrayList.cartArraylist.get(d).getName().toString()); 

     Log.d("ITEM-QUANTITY:", String.valueOf(CartArrayList.cartArraylist.get(d).getQuantity())); 

     Log.d("ITEM-PRICE:", String.valueOf(CartArrayList.cartArraylist.get(d).getPrice())); 

     Log.d("ITEM-TOTAL:", String.valueOf(CartArrayList.cartArraylist.get(d).getTotal())); 
CartArrayList.cartArraylist.setTotal((CartArrayList.cartArraylist.get(d).getQuantity())*(CartArrayList.cartArraylist.get(d).getPrice())); 
     subTotal = subTotal + CartArrayList.cartArraylist.get(d).getTotal(); 

     Log.d("SUB TOTAL:", String.valueOf(subTotal)); 

    } 

- >再次發佈您的代碼,如果它仍然沒有工作:)感謝

+0

是的,我知道這是唯一的問題我怎麼才能第一次得到價值,我已經發布了我的整個代碼 – Sophie

+0

@Sophie試試這個代碼,首先你會得到你的總數 – Hardy

+0

但我擔心的是我爲什麼不是在onCreate – Sophie