EditText
Изучаем примеры использования EditText в Android Studio на языке Java.
Компонент EditText — это текстовое поле для пользовательского ввода, которое используется, если необходимо редактирование текста.
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
</body>
</>
inputType
Plain Text - стандартная клавиатура, можно не указывать.
textPersonName - только буквы при вводе текста.
textCapWords - начинает писать с заглавной буквы, также ставит заглавную букву после точки.
textPassword - при вводе текста сначала показывается символ, который заменяется на звёздочку.
numberPassword - используются только цифры.
textEmailAddress - на клавиатуре появляется дополнительная клавиша с символом @.
phone - клавиатура кнопочного сотового телефона с цифрами, а также с кнопками звёздочки и решётки.
textMultiLine - позволяет сделать текстовое поле многострочным.
Атрибут android:lines задаёт количество строк.
time, date - на клавиатуре цифры, точка, запятая, тире.
datetime - клавиатура для ввода даты и времени.
number, numberSigned, numberDecimal - только цифры и некоторые другие символы.
textUri - для ввода веб-адресов.
android:inputType="textCapSentences|textMultiLine" - позволяет устанавливать несколько значений.
// Делаем заглавным первый символ предложения
val inputType = InputType.TYPE_CLASS_TEXT or
InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText.inputType = inputType
// Другие варианты
// Только числа, десятичную точку и минус
val inputType = InputType.TYPE_CLASS_NUMBER or // allow numbers
InputType.TYPE_NUMBER_FLAG_DECIMAL or // allow decimal numbers
InputType.TYPE_NUMBER_FLAG_SIGNED // allow positive and negative numbers
Другие свойства
android:hint="подсказка" - на пустом поле появится подсказка.
android:maxLength="5" - максимальное количество символов для ввода.
Методы
EditText.getText().toString(); - получение содержимого EditText.
edittext.setText("Запись текста") - запись в EditText.
Отображение содержимого EditText в TextView
Полезно если используется тип пароля.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText = findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
TextView textView = findViewById(R.id.textView);
textView.setText(s);
}
});
}
}
TextWatcher - слушатель ввода текста.
addTextChangedListener() - метод в котором вложены 3 свойста - afterTextChanged, beforeTextChanged, onTextChanged.
Скрыть клавиатуру
Обычно при работе с EditText. По умолчанию программная клавиатура может быть закрыта только нажатием кнопки «Назад»
your_button_id.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
} catch (Exception e) {
// TODO: handle exception
}
}
});