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

【Android開発】EditTextの入力文字数を制限する方法を解説

この記事では、AndroidアプリでEditTextに入力できるテキストの長さ(文字数)を制限する方法を解説します。ユーザー名や電話番号など、入力文字数に上限を設けたい場面で役立つテクニックです。

最もシンプルな方法は、XMLレイアウトでandroid:maxLength属性を指定することです。以下の手順で実装していきましょう。

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

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

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

res/layout/activity_main.xml に以下のコードを追加します。ポイントは、EditTextタグ内のandroid:maxLength="10"の部分です。この記述により、最大10文字までしか入力できなくなります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_margin="16dp"
    tools:context=".MainActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter something..."
        android:maxLength="10" />

</LinearLayout>

ステップ3:MainActivity.java を編集する

src/MainActivity.java に以下のコードを追加します。レイアウト側ですでに文字数制限を指定しているため、Javaコード側では特別な処理は不要です。

package app.tutorialspoint.com.sample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

ステップ4:AndroidManifest.xml を編集する

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.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をタップして文字を入力してみてください。10文字を超える入力は受け付けられず、自動的に制限されることが確認できます。

【Android開発】EditTextの入力文字数を制限する方法を解説

補足:コードから動的に文字数を制限する方法

XMLではなくJavaコード側から制御したい場合は、InputFilterを使う方法もあります。以下のようにsetFilters()メソッドにInputFilter.LengthFilterを渡すことで、同じ制限をプログラムから実現できます。

EditText editText = findViewById(R.id.editText);
editText.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(10) });

固定の文字数制限ならXMLのandroid:maxLength、条件によって制限値を変えたい場合はInputFilterと、状況に応じて使い分けるとよいでしょう。

  1. 【Android】TextViewでテキストを両端揃え(ジャスティファイ)表示する方法

    概要 本記事では、AndroidアプリのTextViewに表示するテキストを両端揃え(ジャスティファイ)にする方法を、サンプルコードとともにわかりやすく解説します。 TextViewで両端揃えを実現するには、android:justificationMode=inter_wordを指定するだけです。この機能はAndroid 8.0(APIレベル26)以降で有効になるため、それ以前のOSバージョンでは無視される点に注意してください。 手順1:新規プロジェクトを作成する まず、Android Studioを起動し、メニューから「File」⇒「New Project」を選択します。必要な項目をす

  2. CSS3で入力テキストの文字数を制限することはできる?正しい実装方法を解説

    CSS3では入力文字数の制限はできない 結論から言うと、CSS3だけでは入力フィールドの文字数を制限することはできません。 HTMLではmaxlength属性を使えば簡単に入力文字数を制限できますが、CSSはあくまでウェブページの「見た目(プレゼンテーション)」を担当する技術であり、文字数制限のような「動作(ビヘイビア)」は扱えません。そのため、CSS3で文字数制限を実現しようとすると機能面での制約が生じてしまいます。 入力文字数の制限は動作に関わる処理なので、CSSではなくHTML側で実装するのが正しいアプローチです。 HTMLのmaxlength属性を使って制限する方法 入力テキストの長