InputFilter の例

EditText 入力を InputFilter で制限するメモです。

import android.text.InputFilter;
import android.text.Spanned;
/**
 * 英数字フィルタ
 */

public final class AlphaNumericFilter implements InputFilter{
   @Override
   public CharSequence filter(CharSequence source,int start,int end,Spanned dest,int dstart,int dend){
      if (source.toString().matches("^[a-zA-Z0-9]+$")){
         return source;
      }
      return "";
   }
}
--------------------------------------------------------
import android.text.InputFilter;
import android.text.Spanned;
/**
 * 英数字+記号文字 ( ) ' " - + , . ; : ? ! @ / フィルタ
 */

public class AlphaNumericSignFilter implements InputFilter{
   @Override
   public CharSequence filter(CharSequence source,int start,int end,Spanned dest,int dstart,int dend){
      if (source.toString().matches("^[a-zA-Z0-9\\(\\)'\"\\-\\+\\*,\\.\\?\\!@/]+$")){
         return source;
      }
      return "";
   }
}
--------------------------------------------------------

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