Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android】EditTextにアルファベットのみ入力できるようにする方法

はじめに

この記事では、AndroidアプリのEditText(テキスト入力欄)に対して、アルファベットのみを入力可能にする方法を解説します。InputFilterと正規表現を組み合わせることで、数字や記号などの入力をブロックし、英字だけを受け付ける入力フィールドを簡単に実装できます。

手順1:新規プロジェクトの作成

まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。

手順2:レイアウトファイルの編集

次に、res/layout/activity_main.xmlに以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:hint="Enter text here" />
</RelativeLayout>

ここでは、画面中央に配置されたシンプルなEditTextを定義しています。

手順3:MainActivity.javaの編集

続いて、src/MainActivity.javaに以下のコードを追加します。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
    EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = findViewById(R.id.editText);
        editText.setFilters(new InputFilter[]{ new InputFilter() {
            @Override
            public CharSequence filter(CharSequence charSequence, int start, int end,
                                       Spanned dest, int etStart, int etEnd) {
                if (charSequence.equals("")) {
                    return charSequence;
                }
                if (charSequence.toString().matches("[a-zA-Z ]+")) {
                    return charSequence;
                }
                return "";
            }
        }});
    }
}

コードのポイント

setFilters()メソッドでカスタムのInputFilterを設定するのがこの実装の核心です。filter()メソッドは文字が入力されるたびに呼び出され、以下のように動作します。

  • 入力内容が空文字の場合はそのまま受け入れます。
  • 正規表現[a-zA-Z ]+にマッチする場合(半角英字とスペースのみ)は入力を許可します。
  • それ以外の文字(数字・記号など)の場合は空文字を返し、入力を拒否します。

なお、正規表現の[a-zA-Z ]+内のスペースを削除すれば、英字のみ(スペース不可)に制限することも可能です。

手順4:AndroidManifest.xmlの編集

androidManifest.xmlに以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリを実行して確認しよう

それでは、実際にアプリを実行してみましょう。実機のAndroidスマートフォンをパソコンに接続していることを前提としています。Android Studioからアプリを起動するには、プロジェクト内のアクティビティファイルを開き、ツールバーの実行(Run)アイコンをクリックします。接続したモバイルデバイスを選択すると、端末上にアプリの初期画面が表示されます。

EditTextに文字を入力してみてください。英字とスペースは正常に入力できますが、数字や記号を入力しようとしても反映されないことが確認できます。

【Android】EditTextにアルファベットのみ入力できるようにする方法

【Android】EditTextにアルファベットのみ入力できるようにする方法

【Android】EditTextにアルファベットのみ入力できるようにする方法

まとめ

本記事では、InputFilterと正規表現を活用して、AndroidのEditTextにアルファベットのみを入力させる方法を紹介しました。名前やユーザーIDなど、英字のみを受け付けたい入力欄を実装する際にぜひ活用してください。正規表現を変更することで、許可する文字種を柔軟にカスタマイズできるのも大きなメリットです。

  1. AndroidアプリでTextToSpeech(音声読み上げ)機能を実装する方法をわかりやすく解説

    このチュートリアルでは、AndroidアプリにTextToSpeech(音声合成・TTS)機能を実装し、入力したテキストを音声で読み上げる方法を解説します。サンプルでは、シークバーを使って音声のピッチ(声の高さ)とスピード(話す速さ)を調整できる、実用的な構成になっています。 手順1:Android Studioで新規プロジェクトを作成 Android Studioを起動し、メニューから File ⇒ New Project を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 手順2:レイアウトファイル(activity_main.xml)を編集 res/layou

  2. FacebookでAndroidアプリを作成する方法|開発者サイトでの設定手順を徹底解説

    この記事では、FacebookでAndroidアプリを作成する方法について詳しく解説します。AndroidアプリとFacebookを連携させるには、Facebook開発者サイトでFacebookアプリを作成し、Facebook App IDを取得する必要があります。以下の手順に従って、順番に進めていきましょう。 準備:Facebook開発者サイトで新しいアプリを追加する まず、https://developers.facebook.com/ にアクセスし、「新しいアプリを追加」をクリックしてアプリの作成を開始します。 ステップ1:アプリ名とメールアドレスを入力する 指定されたフィールドに、作