如何将EditText设置为只有hex数字的input?

我将这个代码放在EditText上,这样它只接受hex数字。 我怎么去做这个?

bin = (EditText)findViewById(R.id.editText02); hex = (EditText)findViewById(R.id.editText3); dec = (EditText)findViewById(R.id.editText1); oct = (EditText)findViewById(R.id.editText04); 

Solutions Collecting From Web of "如何将EditText设置为只有hex数字的input?"

TextWatcher也是不错的select,但我更喜欢使用自定义filter。 因此,更简单的方法是使用InputFilter,并对每个字符进行控制,请参阅下面的示例,希望这有助于

  import android.text.InputFilter; import android.text.InputType; EditText input_moodMsg; // initialize this edittext etc etc //.... // here comes the filter to control input on that component InputFilter inputFilter_moodMsg = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) { if (source.length()>44) return "";// max 44chars // Here you can add more controls, eg allow only hex chars etc for (int i = start; i < end; i++) { if (!Character.isLetterOrDigit(source.charAt(i)) && !Character.isSpaceChar(source.charAt(i)) && source.charAt(i)!='-' && source.charAt(i)!='.' && source.charAt(i)!='!' ) { return ""; } } return null; } }; input_moodMsg.setFilters(new InputFilter[] { inputFilter_moodMsg }); input_moodMsg.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

在你的android布局XML文件中,将以下属性添加到EditText中:

 <EditText android:digits="0123456789ABCDEF" android:inputType="textCapCharacters" /> 

第一个属性只允许input这些数字。 任何其他input被拒绝,不显示。 第二个属性大写字符。

信贷去这个博客文章: http : //mobile.antonio081014.com/2012/04/how-to-let-input-of-edittext-only-be.html

为了控制用户可以input的内容,将TextWatcher添加到您的EditText中。