2012-07-05 111 views
-2

我需要在编辑栏输入手机号码。我需要在这个格式来显示数字:
123-456-7890格式黑莓手机号码

例如:1234567890是我的手机号码,而我的前3位,我需要放置后进入文本字段, 这个“ - ”,在接下来的3位数字后,我需要放置另一个' - '。

如果我输入123,然后自动将' - '放在文本字段中,456放置另一个' - '后,不需要放置最后4位数字。

似乎以货币格式显示文本,但从该文本字段获取文本时,我需要获取实际的手机号码,而不需要任何' - '(“1234567890”,而不是123-456-7890) 任何想法这个怎么做?

+0

确定。在每次按键后,根据您的情况检查字段中的字符串。如果你想追加,只需做a = a +“ - ”;在文本字段中是a是一个字符串。 – rfsk2010 2012-07-05 10:40:15

回答

0

请检查该代码,

public MyScreen() 
{   
    setTitle("MyTitle"); 
    final EditField ef = new EditField(); 
    add(ef); 
    ef.setChangeListener(new FieldChangeListener() 
    { 
     public void fieldChanged(Field field, int context) 
     { 

      if (ef.getText().length() == 4 && !ef.getText().endsWith("-")) 
      { 
        ef.setText(""+ef.getText().substring(0,3)+"-"+ef.getText().charAt(3)); 
      } 
      if (ef.getText().length() == 8 && !ef.getText().endsWith("-")) 
      { 
        ef.setText(""+ef.getText().substring(0,7)+"-"+ef.getText().charAt(7)); 
      } 
     } 
    }); 
} 
-1

尝试先尝试原生TextField.PHONENUMBER约束。

public void startApp() 
    { 
     mDisplay = Display.getDisplay(this); 
     mTextField = new TextField("Text Field Label:",null,MAXCHARS,TextField.PHONENUMBER); 
     mForm = new Form("MIDlet Developer Guide: Display a text field."); 
     mForm.append(mTextField); 
     mDisplay.setCurrent(mForm); 
    } 
+1

这个答案看起来像是使用了vanilla J2ME Midlet代码。我认为海报可能要使用BlackBerry UI库。也许我错了? – Nate 2012-07-05 11:12:35

+0

不确定...我无法从问题 – Chan 2012-07-05 11:28:26

+0

得到它,上面的答案不给像“123-456-7890”。它只会给“1234567890” – Signare 2012-07-05 13:58:23

1

请尝试在EditFiled添加监听器,并检查进入PHONENO ANS设定的长度“ - ”在第3和第7位看下面的代码,可以帮助充分。

editField.getEditField().setChangeListener(new FieldChangeListener() { 

      public void fieldChanged(Field field, int context) { 
       EditField sfield = (EditField)field; 
      String number = sfield.getText(); 
      if (number.length() == 3 || number.length() == 7) { 
       setFormat(number); 
      } 
      } 

      }); 

    add(editField); 

创建于MainScreen类

private void setFormat(String newPhoneNo){ 
    editField.setText(newPhoneNo+"-"); 
} 

follwoing方法每当你gettext的形式编辑删除 “ - ”。