次の方法で共有


Xamarin.Android のテキストの編集

このセクションでは、EditText ウィジェットを使用して、ユーザー入力用のテキスト フィールドを作成します。 このフィールドにテキストを入力して Enter キーを押すと、トースト メッセージにテキストが表示されます。

Resources/layout/activity_main.axml を開き、EditText 要素を、これを含めるレイアウトに追加します。 次の例 activity_main.axml には、LinearLayout に追加された EditText が含まれています。

<?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:imeOptionsactionGo に設定されています。 この設定により、既定の Done アクションが Go アクションに変更され、Enter キーをタップすると、KeyPress 入力ハンドラーがトリガーされます (通常、actionGo は、Enter キーによって、入力された URL のターゲットにユーザーを移動するために使用されます)。

ユーザーのテキスト入力を処理するには、MainActivity.csOnCreate メソッドの最後に次のコードを追加します。

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 Attribution Licenseに記載されている条件に従って使用されています。このチュートリアルは、Android Form Stuff tutorial に基づいています。"