Xamarin.Android 編輯文字
在本節中 ,您將使用EditText 小工具建立使用者輸入的文字欄位。 一旦在欄位中輸入文字, Enter 鍵就會在快顯通知訊息中顯示文字。
開啟 Resources/layout/activity_main.axml,並將 EditText 元素新增至包含的配置。 下列範例 activity_main.axml 已 EditText
新增至 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 鍵時,快顯通知會顯示在右側:
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。本教學課程是以 Android Form Stuff 教學課程為基礎。