共用方式為


Xamarin.Android 編輯文字

在本節中 ,您將使用EditText 小工具建立使用者輸入的文字欄位。 一旦在欄位中輸入文字, Enter 鍵就會在快顯通知訊息中顯示文字。

開啟 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 動作,以便點選 Enter 鍵會 KeyPress 觸發輸入處理程式。 (一般而言, actionGo 是用來讓 Enter 金鑰將使用者帶到輸入 URL 的目標。)

若要處理使用者文字輸入,請在 MainActivity.cs將下列程式代碼新增至 OnCreate 方法的結尾:

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 處理程式,以定義在小工具擁有焦點時按下按鍵時要執行的動作。 在此情況下,系統會定義 方法以接聽 Enter 鍵(點選時),然後快顯快顯通知訊息,其中包含已輸入的文字。 請注意, 如果已處理事件,則 Handled 屬性應該一律 true 為 。 這是防止事件升起的必要條件(這會導致文字欄位中的歸位字元)。

執行應用程式,並在文字欄位中輸入一些文字。 當您按下 Enter 鍵時,快顯通知會顯示在右側:

在 EditText 中輸入文字的範例

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。本教學課程是以 Android Form Stuff 教學課程為基礎。