2014-02-23 27 views
1

我有一個簡單的計算器應用程序。當用戶按下計算輸入他們編號的編輯文本顏色並輸出結果時。當按下復位我想編輯的文本重新出現在了線,但它並沒有顯示出來我有目前我的代碼書寫方式。這是我當前代碼的一個縮減。 。如何設置一個編輯文本回到它的原始狀態

@Override 
public void onClick(View v){ 
switch (v.getId()){ 

     case R.id.calculate: 

      myFunction.doWork(); 

      voltageInputEditText.setBackgroundColor(Color.DKGRAY); 
      voltageInputEditText.setTextColor(Color.WHITE); 

      break; 

     case R.id.reset: 

      myFunction.reset(); 

      voltageInputEditText.setText(""); 
      voltageInputEditText.setBackgroundColor(Color.WHITE); 

      break; 
     } 
} 

這是所期望的結果

Desired Look

這是當前結果

Current Result View

這是它的外表我運行myFunction的後(的doWork);

Post Function Look

+1

無法打開Goog​​le+鏈接 – Kakarot

+0

您可以發佈您嘗試複製的用例嗎(例如:用於重現您的問題的步驟說明) – Kakarot

+0

使用類似imgur的東西是發佈圖片的最佳選擇。 –

回答

0

當你調用setBackgroundColor在內部它被調用setBackgroundDrawable與ColorDrawable,所以你要替換的原始背景,顯示裏面的EditText行之一。

設置一個白色背景顏色,開始將同樣刪除此行。

如果您通過getBackground保存原始背景繪製後來通過setBackgroundDrawable它恢復它應該工作。

0

您應該簡單地保存它。

String savedInputText = ""; 

@Override 
public void onClick(View v){ 
switch (v.getId()){ 
    case R.id.calculate: 

     myFunction.doWork(); 

     savedInputText = voltageInputEditText.getText(); 

     voltageInputEditText.setBackgroundColor(Color.DKGRAY); 
     voltageInputEditText.setTextColor(Color.WHITE); 

     break; 

    case R.id.reset: 

     myFunction.reset(); 

     voltageInputEditText.setText(savedInputText); 
     voltageInputEditText.setBackgroundColor(Color.WHITE); 

     break; 
    } 
} 
相關問題