[Android] EditTextの入力文字数を動的にカウント表示する方法

Twitterライクに入力文字数のカウント表示をしたい時の実装メモです。

Twitterライクな入力文字数カウント表示の実装

Androidアプリで、Twitterライクに入力文字数のカウント表示をしたい時の実装メモです。

入力文字数のカウント表示&指定文字数オーバー時に文字色を赤くする

以下のコードで、テキスト入力文字数のカウント表示と、指定文字数オーバー時に文字色を赤くすることができます。

<br />
		private EditText editText;<br />
		private TextView textCount;<br />
		editText = ((EditText)findViewById(R.id.editText));<br />
		textCount = ((TextView)findViewById(R.id.textCount));</p>
<p>		editText.addTextChangedListener(new TextWatcher(){<br />
	        @Override<br />
	        public void onTextChanged(CharSequence s, int start, int before, int count){<br />
                int textColor = Color.GRAY;</p>
<p>				// 入力文字数の表示<br />
	        	int txtLength = s.length();<br />
	        	textCount.setText(Integer.toString(txtLength) + &quot;/30&quot;);</p>
<p>				// 指定文字数オーバーで文字色を赤くする<br />
	        	if (txtLength &gt; 30) {<br />
	        		textColor = Color.RED;<br />
	        	}<br />
	            textCount.setTextColor(textColor);<br />
	        }<br />
	        @Override<br />
	        public void afterTextChanged(Editable s) {<br />
	        }<br />
	        @Override<br />
	        public void beforeTextChanged(CharSequence s, int start, int count, int after) {<br />
	        }<br />
	    });<br />

onTextChangedでテキスト入力時のイベントを取得し、入力文字数を表示しています。

実装イメージ

実装イメージは以下のような感じになります。

2014-01-02 16.45.29

EditTextの脇に入力文字数カウンターを表示。

2014-01-02 16.47.21

テキスト入力するとリアルタイムに入力文字数がカウント表示されます。

2014-01-02 16.47.49

指定文字数をオーバーすると文字色が赤くなります。

プロの力が身につく Androidプログラミングの教科書

星影

Tech Hunter代表。フリーランスエンジニア、ブロガー、ゲーマー。
ガジェット、アニメ、ゲーム、インターネットが好きなオタク。
レビューズ公認レビュアー。各種アンバサダー活動もしてます。

コメントを残す

メールアドレスが公開されることはありません。