2012-07-05 129 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的形式編輯刪除 「 - 」。