サンプルプログラム工場

AAKAKA Appで使われているプログラムのサンプルコードをそのまま公開!

サンプルプログラム工場 > android > AndroidのEditTextに入力できる文字列をInputFilterで制限するサンプル#tryAndroidEditTextInputFilter00
Google Play AAKAKAxSOFTへ

AndroidのEditTextに入力できる文字列をInputFilterで制限するサンプル#tryAndroidEditTextInputFilter00

実行ファイル(APK)やサンプル(zip)をダウンロードする
tryAndroidEditTextInputFilter00の実行イメージ


EditTextに入力できる文字列をInputFilterを使って制限をする。
例えば1~100%の間でEditTextに数値を入力してもらいたい場合InputFilterを使って制限をする。
InputFilterを使うことで、入力された文字列に問題がある場合は入力をはじくようにする。
問題は先頭に0がついてしまったとき。
1~100の間の入力は制御ができるけど、先頭に0を入れてしまうと文字として処理するから、「0000」みたいなのがOKになってしまう。
先頭の0を消すすべがない。

大事なところ
 InputFilterインターフェイスを実装する。

関連項目
setFilters
InputFilter
 

開発環境
 Eclipse IDE バージョン: 3.7 Indigo Service Release 1
 ターゲットプラットフォーム: 2.1
 API レベル: 7

package trial.sample.tryandroidedittextinputfilter00;

import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
import android.widget.EditText;

public class TryAndroidEditTextInputFilter00Activity extends Activity {
	
	// フィルターを取り付けるEditText
	EditText mEditText;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // EditTextを取り出す
        this.mEditText = (EditText)this.findViewById(R.id.editText1);
        // EditTextにInputFilterを取り付ける
        this.mEditText.setFilters(new InputFilter[] {
        		new PercentFilter()
        });
    }
}

////////////////////////////////////////////////////////////
// 割合(パーセント限定InputFilter)
class PercentFilter implements InputFilter {

	// フィルター本体
	public CharSequence filter(CharSequence source, int start, int end,
			Spanned dest, int dstart, int dend) {
		
		// 全部をくっつけて新しい値を作る
		String destValue = dest.toString();
		String newValue = destValue.substring(0, dstart) + 
				source + destValue.substring(dend);
				
		int val = 0;
		
		// 数値として取り出す
		try {
			val = Integer.parseInt(newValue);
		} catch (Exception e) {
			// 数値として取り出せない場合は0として処理
			return "";
		}
		
		// 値が取り出せた場合は範囲チェック
		// 範囲を超えてしまっていた場合
		if (val <= 0 || 100 < val) {
			return "";
		}
		return source;
	}
	
}
APKファイルをダウンロード サンプルプロジェクトをダウンロード

, , , ,

Androidの頂点属性のインデックスの固定化をしてキューブを描くサンプル#t... Androidのエミュレーターにアプリ(apkファイル)のインストール/アンインス...

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>