2017-04-03 115 views
-1

我想在Textview中顯示值。但問題是,它在我的Textview中顯示0。它來自int total = 0。我正在做setText,但它沒有給我想要的價值。如何初始化變量無值

如果我刪除0並保持int總數然後它顯示變量總沒有初始化。如果我初始化它,那麼它顯示Textview中的值。

public int getTotal(ArrayList<Integer> price){ 
    int total=0; 
    for(int i=0;i<price.size();i++){ 
     total= total+Integer.parseInt(String.valueOf(price.get(i))); 
    } 
    return total; 
} 

textViewamount=(TextView)findViewById(R.id.amountdisplay); 
textViewamount.setText(" "+getTotal(price)); 
+2

代替'總+的Integer.parseInt的(String.valu eOf(price.get(i)));'你可以簡單地執行'total + price.get(i)'。如果'total'仍然是'0',你確定你的清單'價格'實際上是否包含物品? – QBrute

+0

那麼,如果只想在至少有一個價格的情況下打印該值,則應該首先檢查列表中是否至少有一個值。 – AxelH

+2

*「但它沒有給我想要的價值」*你想要什麼價值? 'ArrayList'中的值是什麼?爲什麼要將一個'Integer'轉換爲'String'然後解析它,而不是僅僅使用'Integer'?請注意,將'total'初始化爲'0'是正確的,因此您專注於問題的錯誤部分。 –

回答

0

這可能發生,如果ArrayList中的大小爲0。在這種情況下,循環將不執行,如果是前

+0

當我調試它顯示arraylist的大小爲0. – Ajinkya

+0

笏我可以做改變列表大小。 – Ajinkya

+0

@Ajinkya在列表中添加一些實際元素 – QBrute

-1

你應該改變你的線路設置將返回總的初始值:

for(int i=0;i<price.size();i++) 
{ 
total = total+Integer.parseInt(String.valueOf(price.get(i))); 
} 
to: 
for(int i=0;i<price.size();i++) 
{ 
total+= (price.get(i)).intValue()); 
} 
+0

沒有,如果我寫這條線,它仍然顯示0在textview – Ajinkya

+0

0是從int總= 0;但是,如果我保持整體;它顯示總數未初始化。 – Ajinkya

0

嗨嘗試這種希望這可以幫助你..

int[] price = {0, 1, 1, 10, 2, 5}; 
TextView total; 

int total1 = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    total = (TextView) findViewById(R.id.total); 

    btn = (Button) findViewById(R.id.btn); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      total1 = 0; 
      getTotal(); 
      total.setText("" + total1); 
     } 
    }); 
} 

private void getTotal() { 

    for (int i = 0; i < price.length; i++) { 
     total1 = total1 + price[i]; 
    } 
} 
+0

那麼......每次有人點擊某件東西時,總計應該增加並且不會重置?如果我點擊三次,您的程序將顯示「Total = 57」。十次會讓我總共有「190」等等。 –

+0

是的但你可以設置標誌爲此然後這個問題解決 –

+0

設置total1 = 0;在getTotal()之前;在onClick –