如何将EditText设置为仅输入hex数字?

我会在此代码中添加一个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); 

Related of "如何将EditText设置为仅输入hex数字?"

TextWatcher也是不错的选择,但我更喜欢使用自定义filter。 因此,更简单的方法是使用InputFilter并动态控制每个char,请参见下面的示例,希望这会有所帮助

  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:

  

第一个属性仅允许输入这些数字。 任何其他输入被拒绝且不显示。 第二个属性将字符大写。

积分转到这篇博文: http : //mobile.antonio081014.com/2012/04/how-to-let-input-of-edittext-only-be.html

要控制用户可以输入的内容,请将TextWatcher添加到EditTexts。