android中如何判斷edittext中資料為空白?,androidedittext
今天寫了一個簡單的記憶便箋小程式,但是卻發現在判斷添加資料不可為空的時候,自己的代碼總是不起作用。
String titleStr = addtitle.getText().toString(); String contentStr = addcontent.getText().toString(); if (titleStr == null && contentStr == null) { Toast.makeText(this, "不能添加一個空資料", Toast.LENGTH_SHORT).show(); } else if (titleStr == null) { Toast.makeText(this, "請添加標題", Toast.LENGTH_SHORT).show(); } else { DataUtils.addFile(titleStr, contentStr, this); Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show(); }
不行~~~
改進後:
if (titleStr == "" && contentStr == "") { Toast.makeText(this, "不能添加一個空資料", Toast.LENGTH_SHORT).show(); } else if (titleStr == "") { Toast.makeText(this, "請添加標題", Toast.LENGTH_SHORT).show(); } else { DataUtils.addFile(titleStr, contentStr, this); Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show(); }
依然不行
上網搜集了一些資料,原來不止我遇到了這個問題呀~~~~解決方案粘貼如下:
在android中 TextUtils.isEmpty()和equals()方法的用法
對於一個UI介面中,當判斷使用者是否輸入使用者名稱或密碼時,我們常用TextUtils.isEmpty()方法來判斷;但有時也可以用這個equals()方法,都可以來判斷EditText中是否為空白,但有時很糾結,不知道這兩種方法中哪個比較好?為什嗎?請哪位知道的大俠詳細協助解答一下,菜鳥成分感謝!
仔細讀官方的API: Returns true if the string is null or 0-length. 意思好像就是看參數是否為空白或0長度。因為你從EditText返回的是一個變數。如果這個變數本身為null值,那麼你掉它的equals方法是要報錯的。但是如果你調用TextUtils.isEmpty() 把這個變數作為參數傳進去。只要這個參數為空白或者為“”,都會返回真。所以,用官方給的更加嚴謹。而且。也十分方便。因為你單獨去判斷你還不是要寫一個if語句判斷。返回的還是一個boolean值,為何別人鋪好的路不走呢?
TextUtils.isEmpty(str)與str.isEmpty()有區別嗎?哪個更好?請寫出原因
就返回結果的情況來看,有一個區別,就是當 str 是空(null)或空串(”“)時 TextUtils.isEmpty(str) 返回 true,否則返回 false。而當空(null)時 str.isEmpty() 會null 指標異常。
就效率上來看, str.isEmpty() 要比 TextUtils.isEmpty() 快,因為如果看官方源碼的話可以發現 TextUtils.isEmpty() 判斷了兩步,先判斷 == null,再判斷 .length == 0。而前者只判斷 .length == 0。
從結構上上看,TextUtils.isEmpty(str) 是一個靜態方法,而 str.isEmpty() 是 String 類的對象所擁有的方法。
感恩:
TextUtils類的常用方法isEmpty與equals
http://www.eoeandroid.com/thread-323960-1-1.html
_____________________________對不起,請原諒我,謝謝你,我愛你