崩潰

2013-04-14 249 views
0

我有一個非常簡單的轉換程序,我已經建立防止Android應用程序,如果數據輸入到一個或另一個文本框它工作正常,但是如果我離開他們都空並單擊一個或另一個轉換按鈕,它崩潰,所以我試圖包含一個if語句來處理這個問題,但它似乎無視了這個聲明並崩潰了。基本上,如果點擊按鈕並且沒有輸入數字,我想要做什麼,只需向屏幕上吐出一條消息,要求用戶輸入數據即可。崩潰

public class MainActivity extends Activity { 

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

    final EditText txtCentimetersValue = (EditText) findViewById(R.id.txtCentimetersValue); 
    final EditText txtInchesValue = (EditText) findViewById(R.id.txtInchesValue); 

    Button btnConvert = (Button) findViewById(R.id.btnConvert); 
    Button btnConvert2 = (Button) findViewById(R.id.btnConvert2); 
    Button btnClear = (Button) findViewById(R.id.btnClear); 

    btnClear.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View arg0) 
     { 
      txtCentimetersValue.setText(""); 
      txtInchesValue.setText(""); 
     } 
    }); 

    btnConvert.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View arg0) 
     { 

       txtInchesValue.setText(""); 

       double centimeters = Double.valueOf(txtCentimetersValue.getText().toString()); 
       double inches = centimeters/0.393700787; 

       txtInchesValue.setText(String.valueOf(inches)); 
     } 


    }); 


    btnConvert2.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View arg0) 
     { 

       txtCentimetersValue.setText(""); 

       double inches = Double.valueOf(txtInchesValue.getText().toString()); 
       double centimeters = inches/0.393700787; 

       txtCentimetersValue.setText(String.valueOf(centimeters)); 
     } 

    }); 
} 

}

回答

1

,所以我嘗試包括if語句來處理這個問題,但它似乎忽略了這種說法,反正崩潰。

我沒有看到一個if語句,也許你試圖使用==比較字符串(你不能用Java做的),或者認爲值null。反正你可以簡單地使用isEmpty()

String value = txtCentimetersValue.getText().toString(); 
if(!value.isEmpty()) { 
    double centimeters = Double.valueOf(value); 
    double inches = centimeters/0.393700787; 

    txtInchesValue.setText(String.valueOf(inches)); 
} 

做英寸到釐米的類似的東西。

+0

我同意化身是奇怪的不知道爲什麼他們使用,無論如何,這完美地工作謝謝你! – user2146211

+0

很高興能幫到你!不要忘記通過單擊複選標記來接受答案作爲解決方案。 – Sam