2017-09-12 32 views
5

Stworzyłem Custom Edittext, w którym ustawiłem InputType jako this.setInputType(InputType.TYPE_CLASS_NUMBER);, ale problem polega na tym, że działa idealnie poniżej 7.0 (nougat), ale powyżej 7.0 to pokaż mi alfanumeryczną klawiaturę.jak ustawić InputType na InputType.TYPE_CLASS_NUMBER w systemie Android w wersji 7.0 (nougat) i powyżej

Kolejną dziwną rzeczą jest dotykanie EditText, szybko uzyskuję miękką klawiaturę numeryczną, ale w mniej niż sekundę automatycznie zmienia się ona w zwykłą miękką klawiaturę pokazującą wszystkie litery. także, gdy klawiatura jest otwarta, niż źle wciśnięty przycisk powrotu, niż klawiatura zamknięta, ale kiedy ponownie wejdę w Edittext. Klawiatura nie jest otwarty aż kliknięciu na onther EditText następnie prąd EditText

Czy ta kwestia w Nugat czy robię coś źle

uzyskać informacje Użyłem kodu do setSoftInputMode aby dostosować PAN

setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN 
        |WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 

i ustawić numeryczny użyciu klawiaturę this.setInputType(InputType.TYPE_CLASS_NUMBER);

Edytowane - kiedy usunąć -

setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN 
         |WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 

z działalności każda praca rzeczą w porządku (liczba klawiatura otwarty pod numerem EditText, alfanumeryczna klawiatura otwarta na alfanumerycznej EditText), z wyjątkiem zawartości nie idzie w górę kierunek oznacza klawiatura hide EditText (bo niewiedza obiektu SOFT_INPUT_ADJUST_PAN)

Pomoc docenione dzięki

+0

Czy jesteś ekspertem od Androida ????????? –

+0

'Stworzyłem Custom Edittext' Prawdopodobnie nie powinieneś tego robić. Kod EditText jest wyższy niż Twój i mój wynik. 'w którym ustawiłem InputType jako [...]' Prawdopodobnie tego nie zrobiłeś. Trudno zobaczyć, co jest nie tak, jeśli nie udostępniasz pełnego kodu tego niestandardowego EditText. Opublikuj całą klasę. –

+0

@Eugen Pechanec !! problem nie występuje w "custom EditText", jeśli jest to CustomeEdittext, wtedy klawiatura alfanumeryczna powinna otworzyć się poniżej nougatu, ale otworzy się klawiatura numeryczna ... także kiedy usuwam właściwość setSoftInputMode = AdjustPan niż pokazuje mi klawiaturę numeryczną, która jest idealna, ale potem ukrywa moją edittext za klawiaturą :( –

Odpowiedz

3

Próbuję użyć setInputType (InputType.TYPE_CLASS_NUMBER) na urządzeniach 7+ i nie widzi, że zachowanie opisane. Szukasz innego wątku, działającego lub dowolnego wywołania zwrotnego, które zmienia InputType twojego EditText po otwarciu lub jednocześnie.

+0

Witam Dima .... Mam zaktualizowane moje pytanie daj mi znać ...dzięki –

+0

utworzyłem nową aplikację z numerem wejściowym i uruchomiłem na urządzeniu nougat działa dobrze (klawiatura numeryczna otwarta), ale w mojej aplikacji nie działa, w mojej aplikacji nie rozumiem, dlaczego nie tylko działa na i tylko nougat tylko ... ....... i twest jest, gdy usuwam softinputmode = właściwość adjustPan działa, ale klawiatura ukrywa edittext .... :( –

+0

w skrócie "setSoftInputMode" ta właściwość zmienia stan edittext z numerycznego na alfanumeryczny - –

0

Spróbuj ustawić softInputMode w pliku softInputMode w swoim pliku Manifest, ponieważ może to dać pożądane zachowanie.

<activity 
    android:name=".YourActivity" 
    android:label="@string/app_name" 
    android:windowSoftInputMode="adjustPan|stateAlwaysHidden" /> 
+0

Mam już dodałem tę linię w pliku Manifestu, mój jest - android: windowSoftInputMode = "adjustPan | adjustResize | stateHidden" –