簡體   English   中英

從edittext獲取數值的替代方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM