Редактирование текста Xamarin.Android

В этом разделе вы будете использовать мини-приложение EditText для создания текстового поля для ввода пользователем. После ввода текста в поле клавишу ВВОД отобразится текст в всплывающем сообщении.

Откройте resources/layout/activity_main.axml и добавьте элемент EditText в содержащий макет. В следующем примере activity_main.axmlEditText есть добавленный к объекту 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 , если событие обработано. Это необходимо, чтобы предотвратить появление события (что приведет к возврату каретки в текстовом поле).

Запустите приложение и введите текст в текстовое поле. При нажатии клавиши ВВОД всплываемый элемент будет отображаться, как показано справа:

Examples of entering text into EditText

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными влицензии Creative Commons 2.5 Attribution. Это руководство основано на руководстве по работе сформами Android.