Ograniczanie wyboru numeru Android do klawiatury numerycznej dla wprowadzania numerycznego (nie klawiatury Alpha)

Czy istnieje sposób sugerowania lub ograniczania danych wprowadzanych z klawiatury podczas wybierania obiektu NumberPicker, aby podczas wprowadzania wartości wyświetlane były tylko elementy sterujące liczbą, podobnie jak można użyćandroid:inputType="number" z EditText?

Mam serię wartości od 0,0 do 100,0 w przyrostach co 0,1, które chciałbym móc użyć za pomocą narzędzia NumberPicker, aby wybrać w systemie Android 4.3. Aby móc wybierać liczby, utworzyłem tablicę ciągów, która odpowiada tym wartościom, jak pokazano poniżej:

    NumberPicker np = (NumberPicker) rootView.findViewById(R.id.programmingNumberPicker);        
    int numberOfIntensityOptions = 1001;

    BigDecimal[] intensityDecimals = new BigDecimal[numberOfIntensityOptions];
    for(int i = 0; i < intensityDecimals.length; i++ )
    {
        // Gets exact representations of 0.1, 0.2, 0.3 ... 99.9, 100.0
        intensityDecimals[i]  = BigDecimal.valueOf(i).divide(BigDecimal.TEN);
    }

    intensityStrings = new String[numberOfIntensityOptions];
    for(int i = 0; i < intensityDecimals.length; i ++)
    {
        intensityStrings[i] = intensityDecimals[i].toString();
    }

    // this will allow a user to select numbers, and bring up a full keyboard. Alphabetic keys are
    // ignored - Can I somehow change the keyboard for this control to suggest to use *only* a number keyboard
    // to make it much more intuitive? 
    np.setMinValue(0);
    np.setMaxValue(intensityStrings.length-1);
    np.setDisplayedValues(intensityStrings);
    np.setWrapSelectorWheel(false);

Jak więcej informacji, zauważyłem, że jeśli nie użyjęsetDisplayedValues() metoda i zamiast tego ustawić liczby całkowite bezpośrednio, klawiaturę numerycznąbędzie być użyty, ale problem polega na tym, że wprowadzany numer jest 10 razy większy niż powinien być - np. jeśli wpiszesz „15” do kontrolki, zostanie to zinterpretowane jako „1,5”

        // This will allow a user to select using a number keyboard, but input needs to be 10x more than it should be. 
        np.setMinValue(0);
        np.setMaxValue(numberOfIntensityOptions-1);
        np.setFormatter(new NumberPicker.Formatter() {
            @Override
            public String format(int value) {
                return BigDecimal.valueOf(value).divide(BigDecimal.TEN).toString();
            }
        });

Wszelkie sugestie, jak podnieść klawiaturę numeryczną, aby umożliwić użytkownikowi wprowadzanie liczb dziesiętnych w ten sposób?

questionAnswers(2)

yourAnswerToTheQuestion