2016-12-08 24 views
2
int maxLength = 20; 
private String blockCharacterSet = "~#^|$%'&*!;"; 

private InputFilter filter = new InputFilter() 
{ 

    @Override 
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) 
    { 

     if (source != null && blockCharacterSet.contains(("" + source))) { 
      return ""; 
     } 
     return null; 
    } 
}; 

ここでは1つのフィルタのみがblockCharacterSetまたは最大長のいずれかを働いている:EditTextで複数のInputFiltersを設定する方法は?

EditText etname; 
etname.setFilters(new InputFilter[] { filter }); 
etname.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLength)}); 

誰も私が一度に2つのフィルター上に設定する助けてくださいことはできますか?

+0

すでにhttp://stackoverflow.com/questions/13414540/edittext-set-number-of-characters-programmaticallyここ – Raghavendra

+0

をSOLNを確認してください、私はこれを試すもののまったく使用 – veeraprasad

+0

はあなたの提案の作品そんなにAkshayのSOLN – Raghavendra

答えて

5

あなたは2 inputFiltersを持っている場合は、以下のような配列にそれを追加します。

etname.setFilters(new InputFilter[] { 
    new InputFilter.LengthFilter(maxLength), filter}); 

は最後にsetFilter()は、入力フィルタの配列を取るので、あなたはsetFilters()で作成するアレイ内のすべての入力フィルタが含まれている必要があります。

+0

ThanQを試してみてくださいません。 ...これらのフィルタをconnetするために&&を使用していました... – veeraprasad

関連する問題