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

KotlinでEditTextを作成!アルファベットのみ入力を許可する方法

この記事では、Kotlinを使ってAndroidアプリでアルファベットのみ入力を受け付けるEditTextを作成する方法を解説します。InputFilterと正規表現を組み合わせることで、数字や記号などの入力を簡単にブロックできます。

ステップ1:新しいプロジェクトを作成する

Android Studioを起動し、「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。テンプレートには「Empty Activity」を選ぶのがおすすめです。

ステップ2:レイアウトファイル(activity_main.xml)の編集

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"
    android:padding="2dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Tutorials Point"
        android:textAlignment="center"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="32sp"
        android:textStyle="bold" />

    <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>

ステップ3:MainActivity.ktの編集

src/MainActivity.kt に以下のコードを追加します。ここでは、InputFilterに対して正規表現「^[a-zA-Z]*$」を適用しています。これにより、a〜zおよびA〜Z以外の文字が入力されようとした際に、自動的にその入力が無効化されます。

package com.example.q11

import android.os.Bundle
import android.text.InputFilter
import android.text.Spanned
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        val editText = findViewById<EditText>(R.id.editText)

        // アルファベット(a〜z / A〜Z)以外の入力をブロックするフィルター
        editText.filters = arrayOf(object : InputFilter {
            override fun filter(
                source: CharSequence?,
                start: Int,
                end: Int,
                dest: Spanned?,
                dstart: Int,
                dend: Int
            ): CharSequence? {
                return if (source != null &&
                    !source.toString().matches("^[a-zA-Z]*$".toRegex())
                ) {
                    ""   // 不正な文字は空文字に置き換えて入力を拒否
                } else {
                    null // 正常な入力はそのまま受け付ける
                }
            }
        })
    }
}

ステップ4:AndroidManifest.xmlの編集

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.q11">

    <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)アイコンをクリックします。

KotlinでEditTextを作成!アルファベットのみ入力を許可する方法

表示される候補の中から自分のモバイルデバイスを選択してください。デバイス上でアプリを確認すると、EditTextに数字や記号を入力しても反映されず、アルファベットだけが入力できることがわかります。

KotlinでEditTextを作成!アルファベットのみ入力を許可する方法

KotlinでEditTextを作成!アルファベットのみ入力を許可する方法

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

    はじめにこの記事では、AndroidアプリのEditText(テキスト入力欄)に対して、アルファベットのみを入力可能にする方法を解説します。InputFilterと正規表現を組み合わせることで、数字や記号などの入力をブロックし、英字だけを受け付ける入力フィールドを簡単に実装できます。手順1:新規プロジェクトの作成まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。手順2:レイアウトファイルの編集次に、res/layout/activity_main.xmlに以下のコ

  2. 【Android開発】角丸のEditTextを作成する方法をステップごとに解説

    はじめにこの記事では、Androidアプリで角が丸い(角丸)EditTextを作成する方法を、具体的なコード例とともに解説します。drawableリソースにカスタムのshapeファイルを定義し、それをEditTextの背景に設定するだけで、簡単におしゃれな角丸デザインを実現できます。手順1:新規プロジェクトを作成するまず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な情報を入力してプロジェクトを作成してください。手順2:レイアウトファイル(activity_main.xml)を編集する次に、「res/layou