Android check null or empty string in Android
AndroidAndroid AsynctaskAndroid FragmentactivityAndroid Problem Overview
In my trying AsyncTask
I get email address from my server. In onPostExecute()
I have to check is email address empty
or null
. I used following code to check it:
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
But in my Toast
I see null
is printed. My full code:
private class LoadPersonalData extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected Void doInBackground(String... res) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_id", PrefUserName));
params.add(new BasicNameValuePair("type", type_data));
JSONObject json = jsonParser.makeHttpRequest(Url, "POST", params);
String result = "";
try {
result = json.getString("message");
} catch (JSONException e) {
e.printStackTrace();
}
if (result.equals("success")) {
try {
userEmail = json.getString("email");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
}
How can I check for null
and empty
string?
Android Solutions
Solution 1 - Android
TextUtils.isEmpty( someString )
Use String myString = null;
if (TextUtils.isEmpty(myString)) {
return; // or break, continue, throw
}
// myString is neither null nor empty if this point is reached
Log.i("TAG", myString);
Notes
-
The documentation states that both null and zero length are checked for. No need to reinvent the wheel here.
-
A good practice to follow is early return.
Solution 2 - Android
From @Jon Skeet comment, really the String
value is "null"
. Following code solved it
if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null"))
Solution 3 - Android
Yo can check it with this:
if(userEmail != null && !userEmail .isEmpty())
And remember you must use from exact above code with that order. Because that ensuring you will not get a null pointer exception from userEmail.isEmpty()
if userEmail
is null.
Above description, it's only available since Java SE 1.6. Check userEmail.length() == 0
on previous versions.
UPDATE:
Use from isEmpty(stringVal)
method from TextUtils
class:
if (TextUtils.isEmpty(userEmail))
Kotlin:
Use from isNullOrEmpty
for null or empty values OR isNullOrBlank
for null or empty or consists solely of whitespace characters.
if (userEmail.isNullOrEmpty())
...
if (userEmail.isNullOrBlank())
Solution 4 - Android
Checking for empty string if it is equal to null, length is zero or containing "null" string
public static boolean isEmptyString(String text) {
return (text == null || text.trim().equals("null") || text.trim()
.length() <= 0);
}
Solution 5 - Android
You can check it with utility method "isEmpty" from TextUtils,
isEmpty(CharSequence str) method check both condition, for null and length.
public static boolean isEmpty(CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
Solution 6 - Android
If using Kotlin:-
if (TextUtils.isEmpty(userEmail).not()) {
// do your work
} else {
// can show error message userEmail is empty
}
If using Java:-
if (!TextUtils.isEmpty(userEmail)) {
// do your work
} else {
// can show error message userEmail is empty
}
Solution 7 - Android
Right way to check empty string.
1. It is faster but not null safe, it will throw NullPointErexception if string is null
if str.isEmpty() then
2. It is also faster but not null safe.
if String.length() = 0 then
3. It is not faster as previous two but it is null safe.
if "".equals(str) then
4. Fouth way
TextUtils.isEmpty(myString)
5. If you want to check for null string.
StringUtils.isEmpty(nullString)
6. If you want to check null and empty string both at same time
if (str == null || str.length() == 0)
Solution 8 - Android
if you check null or empty String so you can try this
if (yourString != null){
if(yourString.length==0 && yourString.equals(""))
Toast.makeText(myClassName.this, "Empty",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(myClassName.this, "String null" , Toast.LENGTH_LONG).show();
}
or using TextUtils class
if (TextUtils.isEmpty(yourString )) {
Toast.makeText(myClassName.this, "Empty" , Toast.LENGTH_LONG).show();
}
Solution 9 - Android
My simple solution to test if a string is null:
if (s.equals("null")){ ..... }
There are two cases.
The variable (of type String) is null(doesn't exists): == works.
The variable has a null value, *.equals("null") gives te right boolean value.
Solution 10 - Android
This worked for me
EditText etname = (EditText) findViewById(R.id.etname);
if(etname.length() == 0){
etname.setError("Required field");
}else{
Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_LONG).show();
}
or Use this for strings
String DEP_DATE;
if (DEP_DATE.equals("") || DEP_DATE.length() == 0 || DEP_DATE.isEmpty() || DEP_DATE == null){
}
Solution 11 - Android
Incase all the answer given does not work, kindly try
String myString = null;
if(myString.trim().equalsIgnoreCase("null")){
//do something
}