2012-06-28 65 views
0

此代碼拋出invocationTargetException。 有幾個問題與此代碼:InvocationTargetException和編碼討論

  1. 它仍然是進入if語句,即使我明確告訴它不要太沒事的時候被輸入到EditText
  2. 我猜這個例外可能發生,因爲parseInt沒有任何東西可以解析(儘管這不應該是一個問題)。
  3. 這種類型異常的原因應該是不是在正確的時間啓動某些東西,如果不是這樣?

    if(ageText.getText().toString() != "" || ageText.getText().toString() != null) 
    { 
        newCharacterController.characterAge = Integer.parseInt(ageText.getText().toString()); 
    } 
    

一點題外話太多,我似乎無法找到任何容器的tagSpinnerEditText,當我看着它的mTag值的程序運行時,會這會影響我的if(parent.getTag() == "OBJECTIDGIVENBYMYSELF")並停止工作?還有更好的方法來獲得值(在C#中的.getType())的tag

上述OBJECTNAMEGIVENBYMYSELF的示例是EditText ***newEditText*** = new EditText(this);

+0

發佈Logcat – Praveenkumar

回答

0
ageText.getText().toString() != "" 

上面的代碼不是比較字符串內容的好實踐,只是因爲使用比較運算符(如「==」)來比較引用而不是值。我認爲你應該使用下面的代碼代替

ageText.getText().toString().equals("") 

而順便說一句,在此之前檢查null。

+0

你是什麼意思「檢查null」。我會馬上放棄這一點,謝謝。 –

+0

在檢查空字符串之前應該完成'ageText.getText()。toString()!= null'。在條件檢查中這是一種常見的做法。但是,在Android中,'EditText.getText()。toString()'不應該爲null,因此您可以簡單地跳過空指針檢查。 –