android:EditText输入格式

时间:2014-05-08 05:08:45

标签: android android-edittext

在我的应用程序中,我必须格式化两个EditTexts的输入,如:

  • 1234 4567 67:十位数,按四位分组。 (空间自动,不由用户插入)
  • 11/14:由' /'分隔的四位数字。 (自动插入' /')

我不知道该怎么做。请帮忙:

3 个答案:

答案 0 :(得分:2)

将监听器放在编辑文本上,作为afterTextChanged。 使用length()函数获取位数。 获得数字后,您可以提取每个数字,然后插入' /'在适当的地方。

len=editText.getText.toString().length();

然后你可以通过检查长度来做适当的改变。

   num=Integer.parseInt(editText.getText.toString());
    temp=num;
    if(len>=10)
    {
    A:
    if((len-4)>0)
    {
    for(i=0;i<(len-4);i++)
    {
    temp=temp/10;    //we get the first 4 digits
    }
    editText.setText(temp+" "); //place letters and add space
    temp=num%(10^(len-4));      //get the num without the first-4 letters
    len=len-4;         //modify length
    goto A;        //repeat again
    }
    editText.setText(temp);     //add the last remaining letters
    }
   else if(len==4)
{
temp=num;
temp=temp%100;  //store the last 2 digits
num=num/10;      //get the first 2 digits
editText.setText(num+"/"+temp);
}

我曾尝试过这个,但我认为这会奏效。 希望这会有所帮助。 :)

答案 1 :(得分:1)

使用“onKeyListener”获取输入事件。 EditText OnKeyDown

然后检查输入是否正确并计算数字。在代码中添加空格/斜杠。 示例代码:

if (editText.getText.toString().length() % 4 == 0) editText.setText(editText.getText.toString() + " ");

没有亲自尝试,但这将是我尝试的方式。另外我也会检查数字输入。

答案 2 :(得分:1)

我可以想到实现它的两种方法:

使用addTextChangedListener

yourEditText.addTextChangedListener(new TextWatcher() {

          public void afterTextChanged(Editable s) {

            // Do your tricks here 

          }

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

          public void onTextChanged(CharSequence s, int start, int before, int count) {}
       });
  • 创建自定义Edittexts
    This link不会做你想要的,但会告诉你如何创建自定义EditText。