Подтвердить что ты не робот

Android check null или пустая строка в Android

В моей попытке AsyncTask я получаю адрес электронной почты с моего сервера. В onPostExecute() мне нужно проверить адрес электронной почты empty или null. Я использовал следующий код, чтобы проверить его:

if (userEmail != null && !userEmail.isEmpty()) {
    Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
    UserEmailLabel.setText(userEmail);
}

Но в моем Toast я вижу null. Мой полный код:

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);
        }
    }

Как проверить строку null и empty? Спасибо заранее.

4b9b3361

Ответ 1

Из комментария @Jon Skeet, действительно значение String равно "null". После выполнения этого кода он

if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null")) 

Ответ 2

Используйте TextUtils.isEmpty( someString )

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);

Примечания

Ответ 3

Проверка пустой строки, если она равна нулю, длина равна нулю или содержит строку "null"

public static boolean isEmptyString(String text) {
        return (text == null || text.trim().equals("null") || text.trim()
                .length() <= 0);
    }

Ответ 4

Yo может проверить это следующим образом:

if(userEmail != null && !userEmail .isEmpty())

И помните, что вы должны использовать от точного выше кода с этим порядком. Поскольку это гарантирует, что вы не получите исключение нулевого указателя из userEmail.isEmpty(), если userEmail равно null.

Описание выше, оно доступно только с Java SE 1.6. Проверьте userEmail.length() == 0 на предыдущих версиях.

Ответ 5

Вы можете проверить это с помощью метода утилиты "isEmpty" из TextUtils,

isEmpty (CharSequence str) проверяет оба условия на нуль и длину.

public static boolean isEmpty(CharSequence str) {
     if (str == null || str.length() == 0)
        return true;
     else
        return false;
}

Ответ 6

Это сработало для меня

EditText   etname = (EditText) findViewById(R.id.etname);
 if(etname.length() == 0){
                    etname.setError("Required field");
                }else{
                    Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_LONG).show();
                }

или использовать это для строк

String DEP_DATE;
if (DEP_DATE.equals("") || DEP_DATE.length() == 0 || DEP_DATE.isEmpty() || DEP_DATE == null){
}

Ответ 7

РАБОТА!!!!

    String text = mEmailTextView.getText().toString();
    if (text.matches("")&& text.trim().equals("null")){

        return false;
    }
    else{
        return true;
    }