Udostępnij za pośrednictwem


Edytowanie tekstu na platformie Xamarin.Android

W tej sekcji użyjesz widżetu EditText , aby utworzyć pole tekstowe dla danych wejściowych użytkownika. Po wprowadzeniu tekstu w polu Enter wyświetli tekst w wyskakującej wiadomości.

Otwórz plik Resources/layout/activity_main.axml i dodaj element EditText do układu zawierającego. Poniższy przykład activity_main.axml zawiera element EditText , który został dodany do elementu 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>

W tym przykładzie EditText kodu atrybut android:imeOptions jest ustawiony na actionGowartość . To ustawienie powoduje zmianę domyślnej akcji Gotowe na akcję Przejdź, aby naciśnięcie KeyPress Enter wyzwoliło procedurę obsługi danych wejściowych. (Zazwyczaj jest używany tak, actionGo aby Enter przenosi użytkownika do miejsca docelowego adresu URL, w którym wpisano).

Aby obsłużyć wprowadzanie tekstu użytkownika, dodaj następujący kod na końcu metody OnCreate w 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;
    }
};

Ponadto dodaj następującą using instrukcję na początku MainActivity.cs , jeśli jeszcze nie istnieje:

using Android.Views;

Ten przykład kodu zwiększa wartość elementu EditText z układu i dodaje procedurę obsługi KeyPress , która definiuje akcję do wykonania po naciśnięciu, gdy widżet ma fokus. W takim przypadku metoda jest zdefiniowana w celu nasłuchiwania Enter (po naciśnięciu), a następnie wyskakującego komunikatu wyskakującego z wprowadzonym tekstem. Należy pamiętać, że właściwość Obsłużona powinna zawsze być true obsługiwana, jeśli zdarzenie zostało obsłużone. Jest to konieczne, aby zapobiec zdarzeniu bubbling się (co spowodowałoby powrót karetki w polu tekstowym).

Uruchom aplikację i wprowadź tekst w polu tekstowym. Po naciśnięciu Enter wyskakujące wyskakujące zostanie wyświetlone, jak pokazano po prawej stronie:

Przykłady wprowadzania tekstu do tekstu EditText

Części tej strony są modyfikacjami opartymi na pracy utworzonej i udostępnionej przez projekt open source systemu Android i używanych zgodnie z warunkami opisanymi w licencji autorstwa Creative Commons 2.5. Ten samouczek jest oparty na samouczku dotyczącym formularzy systemu Android .