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 klawisz 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 klawisza Enter wyzwoliło procedurę obsługi danych wejściowych. (Zazwyczaj jest używany tak, actionGo aby klawisz 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 klawisza, gdy widżet ma fokus. W takim przypadku metoda jest zdefiniowana w celu nasłuchiwania klawisza 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 klawisza Enter wyskakujące wyskakujące zostanie wyświetlone, jak pokazano po prawej stronie:

Przykłady wprowadzania tekstu do tekstu EditText

Części tej strony to modyfikacje oparte na pracy utworzonej i udostępnionej przez projekt open source systemu Android i używane zgodnie z warunkami opisanymi wlicencji autorstwa Creative Commons 2.5. Ten samouczek jest oparty na samouczku dotyczącym formularzy systemu Android.