2012-05-23 113 views
2

我有一個以編程方式創建的edittext(所以不在xml中),我想在用戶按下時啓動數字鍵盤。問題是我想讓這個鍵盤也包含小數點分隔符(。)。Android - 帶小數點分隔符的數字鍵盤

我試過很多東西,但似乎沒有任何工作

最終的EditText輸入=新的EditText(本);

input.setKeyListener(new DigitsKeyListener()); //這個數字不帶小數點分隔符 input.setInputType(InputType.TYPE_CLASS_NUMBER); //這樣就給出了沒有小數點的數字 input.setInputType(InputType.TYPE_CLASS_PHONE); //這給了手機鍵盤第二頁的所有數字和小數點分隔符。這不正是我想要

我知道有實現自定義鍵盤的方式:

http://android-developers.blogspot.com/2009/04/creating-input-method.html

http://developer.android.com/resources/samples/SoftKeyboard/index.html

,但它似乎很痛苦,我第一次找更快的選擇。

我要的是下列之一: 包含小數點分隔 2.啓動標準鍵盤,但是數字「頁」 是上述可能的東西設置1.啓動數字鍵盤?先謝謝你!

+0

你有興趣在EDITTEXT值進行正則表達式? – SALMAN

+0

嗯..我不明白,這將如何改變用戶看到的鍵盤?或者幫助他插入十進制值? – george

+0

[確定這裏是鏈接讓用戶輸入任何東西,但如果無法輸入十進制數驗證期間,您可以顯示警告框錯誤] [1] [1]:HTTP://計算器。com/questions/308122/simple-regular-expression-for-a-decimal-with-a-precision-of-2 – SALMAN

回答

3

對於你所描述的內容沒有鍵盤,至少沒有你可以作爲正常輸入類型獲得的鍵盤。即使您製作了自定義鍵盤,這也不是一種處理此類問題的好方法,因爲用戶每次想要使用應用程序時都必須切換鍵盤。

此外,您不能明確地打開「在數字頁面上」的文本鍵盤,因爲並非所有的Android鍵盤都有單獨的數字頁面。這是在每個設備上高度自定義的。

我的第一個建議是使用正常的文本鍵盤,並讓用戶決定哪個鍵盤最適合。

我的第二個建議是使用按鈕/視圖爲您需要的特定鍵在屏幕上構建一個數字鍵盤。

+0

看起來很徹底謝謝。我會研究一下這個選項,讓你知道我所能找到的所有東西 – george

+0

,看起來你很對。所以回答接受,非常感謝! – george

+0

很高興我能幫到你。 – mtmurdock

0

在這裏。

if (editText.getText().matches("^[0-9]+(\.[0-9]{1,2})?$")) { 
      System.out.println("It is decimal number"); 
     } 
+0

你不明白,問題不是如何確保輸入是十進制數,我想啓動一個軟鍵盤,以便用戶將有十個數字和小數點分隔符(大部分類似於InputType.TYPE_CLASS_NUMBER,但是添加「。」) – george

3

我已經表明使用此代碼鍵盤:

 // Set an EditText view to get user input 
    final EditText input = new EditText(this); 
    alert.setView(input); 
    input.setInputType((InputType.TYPE_CLASS_NUMBER + InputType.TYPE_NUMBER_FLAG_DECIMAL)); 
0
new DigitsKeyListener(false, true) 

會給一個十進制輸入鍵盤

相關問題