2016-10-10 72 views
0

目前,我正在製作一個收銀應用程序。我有一個EditText,其中包含購物車中包含的商品(字符串)。我可以通過觸摸按鈕添加項目。但是現在我只需要一個按鈕,將EditText減去最新輸入的文本到EditText。例如,如果我添加牛奶(1 $),糖(0.8 $),則EditText將顯示「牛奶+糖」。然後我想刪除最新的食糖。所以我觸摸刪除按鈕,我想現在的EditText只顯示牛奶。所以它只減去「糖」。我的大腦不再有任何想法。android - substract edittext的文本

注:在這種情況下,TextView可以代替EditText

順便說一下,我無法顯示我的代碼。我不帶我的筆記本電腦。

最後,如果您有另一種方法可以刪除最新的輸入,就像我可以刪除牛奶一樣,即使它不是最新的輸入,那也不錯:)。

感謝您的關注!:)

+0

你在哪裏存儲選擇的項目? –

+0

我不存儲它們。我只是告訴他們選擇的用戶項目。然後我將總價格存儲爲int。所以當用戶添加項目時,它會將價格添加到總價格中。順便說一下,存儲選定的項目給了我想法。謝謝! – Sena

+0

看到我的想法如下。 –

回答

1

存放在List選定的項目。

List<String> selectedItems = new ArrayList<String>(); 

更新EditText如下,

private void updateEditText() { 
    StringBuilder text = new StringBuilder(); 
    for (int i = 0; i < selectedItems.size(); i++) { 
     text.append(item); 
     if(i != selectedItems.size() -1) { 
      text.append(" + "); 
     } 
    } 
    editText.setText(text.toString()); 
} 

方法添加到所選List

private void addItem(String item){ 
    // add some duplicate checking logic if needed 

    // add the item to selected list 
    selectedItems.add(item); 

    // update the EditText 
    updateEditText(); 
} 

方法選自List刪除項目,

private void removeItem(String item){ 

    // remove the item from selected list 
    selectedItems.remove(item); 

    // update the EditText 
    updateEditText(); 
} 

例如,

用戶選擇了 「牛奶」 和 「糖」:

addItem("Milk"); 
addItem("Sugar"); 

用戶刪除 「牛奶」:

removeItem("Milk"); 

希望它能幫助:)

+0

哇,它的工作原理!但它需要改變。即使我輸入不同的項目,該代碼也會得到相同的項目。所以我將text.append(item)更改爲text.append(selectedItems.get(i))。順便說一下,謝謝!我會在稍後發送代碼:) – Sena