Я делаю базовое приложение для контактов с 4 полями; имя, номер, веб-сайт и местоположение.
Теперь при вводе проверяет и предлагает пользователю ввести, если он оставляет номер пустым.
Но я хочу, чтобы сеть и местоположение были необязательными. Когда данные существуют; Я хочу, чтобы это было передано, но когда оно не существует, я хочу, чтобы оно ничего не делало.
Вот мой код.
if (etName.getText().toString().isEmpty() || etNumber.getText().toString().isEmpty())
{
Toast.makeText(this, "Please fill out the necessary fields", Toast.LENGTH_SHORT).show();
}
else
{
Intent intent = new Intent();
intent.putExtra("name", etName.getText().toString());
intent.putExtra("number", etNumber.getText().toString().trim());
if (etWeb.getText().toString().trim() != null)
{
intent.putExtra("web", etNumber.getText().toString().trim());
}
if (etLocation.getText().toString() != null)
{
intent.putExtra("location", etLocation.getText().toString().trim());
}
Проблема в том, что код говорит, что условие etWeb.getText().toString().trim() != null
и etLocation.getText().toString().trim() != null
всегда истинно.
Какие изменения мне следует внести?
Как мне это исправить?
проверить мой ответ
@Zoe, спасибо за подсказку, буду иметь в виду
Вы должны проверить isEmpty() вместо null.
Я пытался это сделать, но в завершении кода такого нет. Не могли бы вы помочь mw с этим?
Это странное поведение.
Вы можете проверить, что строка не пуста, а не равна нулю
if (!android.text.TextUtils.isEmpty(etWeb.getText().toString().trim())){
intent.putExtra("web", etWeb.getText().toString().trim());
}
или можете проверить
if (etWeb.getText().toString().trim().length() > 0){
intent.putExtra("web", etWeb.getText().toString().trim());
}
Эй, не могли бы вы объяснить "! android.text.TextUtils" ??. Потому что если я заменю его на etWeb, он выдаст мне ошибку
TextUtils — это класс Utility, представленный в android. Вам нужно передать свои строковые данные в функцию isEmpty(), чтобы проверить, пусто оно или нет.
О, ваш комментарий прояснил мою ошибку, я заменил Textutils на etWeb.
Кроме того, если бы вы могли помочь с частью, это было бы здорово. Как заставить приложение ничего не делать, если ничего не вводилось?
К вашему сведению: метод getText() вернет CharSequence
, он всегда будет пустым, даже если вы ничего не ввели.
Вы можете попробовать приведенный ниже код, чтобы проверить, доступны ли данные о погоде или нет.
if (!etWeb.getText().toString().equals(""))
{
intent.putExtra("web", etNumber.getText().toString().trim());
}
Приведенный выше код проверит, присутствуют ли данные в поле.
Хорошо, это работает, также, если бы вы могли помочь мне с другой проблемой, как я могу заставить приложение ничего не делать, если ничего не было введено?
Что вы подразумеваете под "ничего не делать"?
Я хочу, чтобы поля web и location были необязательными, поэтому я передаю операторы if, чтобы проверить, пусты они или нет. Если они не пусты, данные передаются вперед, но если данные не были введены, приложение должно быть в порядке, и оно не должно падать при нажатии кнопки местоположения (эти кнопки — это место, куда отправляются данные, если вы хотите, чтобы я мог добавить их код к вопросу)
пожалуйста, добавьте новый вопрос и опубликуйте обновленный код там.
Я задал вопрос, но оказалось, что я могу публиковать только один вопрос каждые 90 минут. Я опубликую ссылку здесь, когда сделаю.
Ничего, методом проб и ошибок я внес соответствующие изменения
да, это всегда будет правдой