2013-12-17 148 views
0

這裏是什麼,我試圖做一個例子:如何格式化電話號碼

如果電話號碼輸入爲6123044356它將會顯示爲(612)304-4356。如果客人打了5次退格鍵而不是刪除最後輸入的4個數字和短劃線,請刪除最後輸入的5個數字。該點的電話號碼將顯示爲(612)30。如果客人再次擊中退格鍵3,則顯示的最後3個數字將被刪除,而不是括號。電話號碼將顯示爲61.

有關如何操作的任何建議?

回答

1

看看libphonenumber庫。它有AsYouTypeFormatter類,它會爲你處理。

或者,您可以使用PhoneNumberFormattingTextWatcher這基本上是做同樣的事情。你會像這樣使用它:

editText.addTextChangeListener(new PhoneNumberFormattingTextWatcher()); 
0

我會這樣做,就像撥號程序那樣做。這種方式最直觀。

基本上,當他們打字時,只要一個數字,比如說1234567,得到7位數字,就爲用戶分解爲123-4567。然後當它達到10位數字時,123-4567890,爲它們分割爲(123)456-7890。當它們達到11位數字時,將格式更改爲1-(234)567-8901。

當他們從11位數字中刪除數字時,只要他們點擊10位數字,就回到(123)456-7890。之後,一旦位數小於10,請將格式更改回123-456789。保持它的格式,直到它們達到六位數時,只要將其更改爲123456即可。

通過在用戶達到一定數量的數字時將數字更改爲可識別的表單並從可識別的表單中更改數字,它巧妙地提醒用戶他們有創建一個真實的數字,或者有太多或沒有足夠的數字,這是一個真正的數字。

我建議使用以下閾值:

  • 11位:1-(234)567-8901
  • 10個數字:(123)456-7890(任何小於這看起來像7個位數與數字在結尾)
  • 7位數字:123-4567(任何更少只是刪除短劃線)。

我希望這是有道理的。我不認爲用戶應該輸入/刪除任何額外的字符,如圓括號和破折號。它應該全部由應用程序照顧。

+0

我意識到我想知道如何使用代碼。 – user268397