[英]Alternative way to getting numeric value from edittext
我目前正在使用以下代碼行從編輯文本中獲取值:
double value = Double.valueOf(editText.getText().toString().trim());
這是在 onclick 方法中。 每次單擊該按鈕時,我正在開發的應用程序都會崩潰,並且我已經注釋了該方法中所有可能的行變化,並發現正是這行代碼導致它崩潰。 我不知道為什么會發生這種情況,但是有沒有替代方法? 將其解析為 double 也不起作用。
Double.parseDouble(String)
返回一個原始的double類型。
Double.valueOf(String)
返回Double類型的包裝器object
所以你可以按照以下方式進行,
String strValue = editText.getText().toString().trim();
檢查值是否為空。
if(!strValue.isEmpty()) {
double value = Double.parseDouble(strValue);
}
或者
if(!strValue.isEmpty()) {
Double value = Double.valueOf(strValue);
}
崩潰是因為您在 null 上使用修剪或空值。 嘗試添加檢查
double value=0.0;
if(null!=editText && null!=editText.getText() && editText.getText().length() > 0 && !TextUtils.isEmpty(editText.getText().toString())){
value = Double.parseDouble(editText.getText().toString().trim());
}else{
editText.setError("Your message");
}
嘗試這個:
String s=editText.getText().toString().trim();
if(!s.equalsIgnoreCase("")&& !s.equalsIgnoreCase(null)&& !s.isEmpty()) {
Double value = Double.parseDouble(s);
}else{
//alert
}
推薦
使用TextUtils
class 的isEmpty
方法。
double value;
if(!TextUtils.isEmpty(editText.getText().toString().trim())){
value = Double.parseDouble(editText.getText().toString().trim());
}
TextUtils的isEmpty方法的實現:
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0) {
return true;
} else {
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.