2011-05-18 7 views
0

EditTextsにフィルターを付けることができますか(私はこの名前については分かりません)、EditTextに何らかの並べ替えの警告が表示されるのではなく、ユーザーが間違った方法で何かを入力するようにしますか?EditTextに組み込まれているフィルタリングオプションはありますか?

たとえば、フォームにEditTextがあり、それを埋める必要があります。空になるまで、警告が表示され、フォームに必須のフィールドであることが示されます。

私はAndroidのすべてのEditTextsで同様の動作を見たので、これには組み込みの機能がありますが、見つけられません。誰かが私を助けてくれますか?

対象のAndroidバージョンは3.0以上です。

答えて

1

TextWatcherを追加して、public void afterTextChanged(Editable s)の実装に応じて対応することができます。 sが空であるかどうか、または正しいかどうかを確認してください。

filtersも実装できますが、通常はになります。に間違ったデータを入力しないようにしてください。

1

android:inputTypeの属性をEditTextで見てください。たとえば、android:inputType="textEmailAddress|number|phone"などです。
空をチェックするために、私はif (editText.getText().length() > 0)以外何も示唆できません。

1

テキストウォッチャーイベントでコードを使用してフィルタを追加できます。テキストの編集で何かを入力すると、テキストウォッチャーイベントが実行されます。条件がfalseの場合、ポップアップを表示する必要があります。私は、edittextでフィルタリングする必要があるテキストウォッチャーイベントの助けを借りてテキストを編集してリストビューでフィルタリングする例を示しています。

ed.addTextChangedListener(新しいTextWatcher(){

 public void afterTextChanged(Editable s) { 
     } 

     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
     } 

     public void onTextChanged(CharSequence s, int start, int before, 
       int count) { 
      fillMaps.clear(); 
      textlength = ed.getText().length(); 
      for (int i = 0; i < countryName.length; i++) { 
       if (textlength <= countryName[i].length()) { 
        if (ed.getText() 
          .toString() 
          .equalsIgnoreCase(
            (String) countryName[i].subSequence(0, 
              textlength))) { 
         HashMap<String, String> map = new HashMap<String, String>(); 
         map.put("flag", "" + imageId[i]); 
         map.put("country", countryName[i].toString()); 
         map.put("capital", capitalName[i].toString()); 
         map.put("countrytime", 
           convertDateTimeToGMT(
             GMTplusMinusInMillisecond[i], 
             plusMinus[i])); 
         map.put("GMT", GMTplusMinus[i].toString()); 

         fillMaps.add(map); 
        } 
       } 
      } 
      SimpleAdapter adapter = new SimpleAdapter(
        WorldClockActivity.this, fillMaps, R.layout.grid_item, 
        from, to); 
      lv1.setAdapter(adapter); 
      // lv1.setAdapter(new 
      // ArrayAdapter<String>(WorldClockActivity.this,android.R.layout.simple_list_item_1 
      // , arr_sort)); 

     } 
    }); 
関連する問題