Android проверьте 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
строку? Спасибо заранее.
8 ответов
использовать 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);
Примечания
- на документация заявляет, что проверяются как нулевая, так и нулевая длина. Не нужно изобретать велосипед.
- хорошей практикой является досрочно возвратить.
от комментария @Jon Skeet, действительно String
значение "null"
. Следующий код решил это
if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null"))
проверка пустой строки, если она равна нулю, длина равна нулю или содержит строку "null"
public static boolean isEmptyString(String text) {
return (text == null || text.trim().equals("null") || text.trim()
.length() <= 0);
}
йо может проверить это с помощью этого:
if(userEmail != null && !userEmail .isEmpty())
и помните, что вы должны использовать точный код выше, с этим порядок. Потому что это гарантирует, что вы не получите исключение нулевого указателя из userEmail.isEmpty()
если userEmail
равно null.
Выше описания он доступен только с Java SE 1.6. Проверка userEmail.length() == 0
на предыдущих версиях.
вы можете проверить его с помощью метода утилиты "isEmpty" из TextUtils,
метод isEmpty(CharSequence str) проверяет оба условия, для null и length.
public static boolean isEmpty(CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
Если вы проверяете null или пустую строку, чтобы вы могли попробовать это
if (createReminderRequest.getDate() == null && createReminderRequest.getDate().trim().equals("")){
DialogUtility.showToast(this, ProjectUtils.getString(R.string.please_select_date_n_time));
}
все, что вы можете сделать, это вызвать метод equals () на пустом строковом литерале и передать объект, который вы тестируете, как показано ниже :
String nullString = null;
String empty = new String();
boolean test = "".equals(empty); // true
System.out.println(test);
boolean check = "".equals(nullString); // false
System.out.println(check);
это сработало для меня
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){
}