Редактирование текста Xamarin.Android
В этом разделе вы будете использовать мини-приложение EditText для создания текстового поля для ввода пользователем. После ввода текста в поле клавишу ВВОД отобразится текст в всплывающем сообщении.
Откройте resources/layout/activity_main.axml и добавьте элемент EditText в содержащий макет. В следующем примере activity_main.axml EditText
есть добавленный к объекту LinearLayout
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:imeOptions="actionGo"
android:inputType="text"
android:layout_height="wrap_content" />
</LinearLayout>
В этом примере EditText
кода атрибут android:imeOptions
имеет значение actionGo
. Этот параметр изменяет действие "Готово" по умолчанию на действие Go, чтобы нажатие клавиши ВВОД активировало KeyPress
обработчик входных данных.
(Как правило, используется, actionGo
чтобы ключ ВВОД перевел пользователя в целевой объект URL-адреса, вводимый в.)
Чтобы обрабатывать ввод текста пользователя, добавьте следующий код в конец метода OnCreate в MainActivity.cs:
EditText edittext = FindViewById<EditText>(Resource.Id.edittext);
edittext.KeyPress += (object sender, View.KeyEventArgs e) => {
e.Handled = false;
if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
{
Toast.MakeText(this, edittext.Text, ToastLength.Short).Show();
e.Handled = true;
}
};
Кроме того, добавьте следующую using
инструкцию в начало MainActivity.cs , если она еще не присутствует:
using Android.Views;
Этот пример кода увеличивает элемент EditText из макета и добавляет обработчик KeyPress , определяющий действие, которое необходимо выполнить при нажатии клавиши во время фокуса мини-приложения. В этом случае метод определяется для прослушивания ключа ВВОД (при нажатии), а затем всплывает всплывающее сообщение с введенным текстом. Обратите внимание, что свойство Handled всегда должно быть true
, если событие обработано. Это необходимо, чтобы предотвратить появление события (что приведет к возврату каретки в текстовом поле).
Запустите приложение и введите текст в текстовое поле. При нажатии клавиши ВВОД всплываемый элемент будет отображаться, как показано справа:
Части этой страницы — это изменения, основанные на работе, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution. Это руководство основано на руководстве по работе с формами Android.