2012-03-07 181 views
1

我正在開發一個應用程序,我想要設置美國格式的電話號碼,例如xxx-xxx-xxxx。我怎樣才能做到這一點?如何在android中設置美國格式的電話號碼?

+0

嘗試這樣:[http://stackoverflow.com](http://stackoverflow.com/questions/487906/java-phone-number-format-api) – 2012-03-07 12:00:39

回答

6

嘗試執行以下代碼,然後U將得到 「 - 」 在輸入號碼

text.addTextChangedListener(new TextWatcher() { 

    public void onTextChanged(CharSequence s, int start, int before, int count) { 

     boolean flag = true; 
     String eachBlock[] = text.getText().toString().split("-"); 
     for (int i = 0; i < eachBlock.length; i++) 
     { 
      if (eachBlock[i].length() > 3) 
      { 
       Log.v("11111111111111111111","cc"+flag + eachBlock[i].length()); 
      } 
     } 
     if (flag) { 
      text.setOnKeyListener(new OnKeyListener() { 

       public boolean onKey(View v, int keyCode, KeyEvent event) { 

        if (keyCode == KeyEvent.KEYCODE_DEL) 
         keyDel = 1; 
        return false; 
       } 
      }); 

      if (keyDel == 0) { 

       if (((text.getText().length() + 1) % 4) == 0) 
       { 
        if (text.getText().toString().split("-").length <= 2) 
        { 
         text.setText(text.getText() + "-"); 
         text.setSelection(text.getText().length()); 
        } 
       } 
       a = text.getText().toString(); 
      } 
      else 
       { 
       a = text.getText().toString(); 
       keyDel = 0; 
      } 

     } else { 
      text.setText(a); 
     } 

    } 

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


    } 

    public void afterTextChanged(Editable s) { 


    } 


}); 
+0

謝謝..他爲我工作:) – nithinreddy 2012-05-04 18:10:14

+0

然後給我投票 – 2012-05-09 07:21:51

+0

我已經做了! :) – nithinreddy 2012-05-09 08:33:33

0

mobileEditText.addTextChangedListener(守望者); 使用下面的函數..

private final TextWatcher watcher = new TextWatcher() { 


    public void beforeTextChanged(CharSequence s, int start, int count, int after) 
     { 
     mAfter = after; 
     } 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) 
     { 
     } 
     @Override 
     public void afterTextChanged(Editable s) { 
      if (!mFormatting) { 
       mFormatting = true; 
       if(mAfter!=0) // in case back space ain't clicked... 
      PhoneNumberUtils.formatNumber(s,PhoneNumberUtils.getFormatTypeForLocale(Locale.US));        
       mFormatting = false; 
      } 
相關問題