2017-01-05 3 views
0

У меня есть EdidText и Button в Fragment. Когда я нажимаю Button, я хочу проверить, пуст или нет EditText. Если пусто, я хочу вернуть сообщение об ошибке. Если notEmpty означает переместить на другой fragments или что-то еще дальше.EditView должен содержать данные для дальнейшего процесса

Я ранее искать решение моей проблемы, но в основном я нашел решение, как,

if(textView.getText().toString().trim().equals("")) { 
     textView.setError("something"); 
} else { 
    //do something; 
} 

Приведенный выше код работал правильно, но то, что я спрашиваю, как это сделать в макете не программно.

Я хочу знать, что это достигается с помощью XML-файла макета или нет. Если возможно, пожалуйста, дайте мне пример.

Заранее спасибо.

+2

Я не» Думаю, есть способ сделать это через 'XML'. Поскольку во время выполнения изменяется значение EditText. –

+0

нет возможности проверить EditText только в xml. независимо от того, будете ли вы по-прежнему использовать Java-код для перехода к другим фрагментам –

+0

@ M.WaqasPervez в порядке, спасибо за ваш добрый ответ – Narendhran

ответ

1

Вы не можете установить ошибку с использованием XML.

вам необходимо установить его в onCreate вашего фрагмента. Таким образом, вы не увидите разницы, если он установлен в xml или в коде.

Вы можете написать свой собственный EditText и добавить дополнительный атрибут стиля "error". После этого вам нужно использовать собственный EditText и снова установить ошибку в onCreate.

Создайте новый класс и расширить его из EditText так:

public class MyEditText extends EditText { 
    public MyEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyEditText); 
     String error = a.getString(R.styleable.MyEditText_error); 
     a.recycle(); 
     setError(error); 
    } 
} 

В Attr добавить следующее:

<declare-styleable name="MyEditText"> 
    <attr name="error" format="reference|string" /> 
</declare-styleable> 

После этого вам нужно будет всегда использовать MyEditText

0

Проверьте это с помощью этого кода

editText.getText().toString().isEmpty() 
+0

, пожалуйста, полностью прочитайте мой вопрос sir/ma'am, я не хочу делать программно, вместо этого использую xml-файлы. – Narendhran

+0

Нет способа сделать это в xml, xml не может видеть, является ли edittext пустым или нет. – Werasu

Смежные вопросы