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 actionGo
wartość . 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:
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 .