Отображать цифровую клавиатуру во время выполнения Activity по умолчанию

Приложение имеет активность, в которой нет виджета, такого как textview, EditText, кнопка.

Я хочу добиться этого программно. (Время выполнения) Я успешно смог отобразить системную клавиатуру с кодом ниже.

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

     imm.showSoftInput(getWindow().getDecorView(), 0);

Я хочу показать цифровую клавиатуру вместо стандартной клавиатуры qwerty.

может у кого-нибудь есть идея, как этого добиться?


person NovusMobile    schedule 12.08.2016    source источник


Ответы (3)


С помощью пользовательского представления вы можете добиться этого. Обычно с помощью InputMethodManager вы можете отображать клавиатуру. Этот менеджер собирается делегировать ввод InputConnection, который затем делегирует InputMethod.

поэтому создайте собственный вид, который работает так.

public class MyCustomView extends View {

    ..your methods here..

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
        InputConnection inputConnection =  super.onCreateInputConnection(outAttrs);
        outAttrs.inputType |= InputType.TYPE_CLASS_NUMBER;
        return inputConnection;
    }
}

Надеюсь это поможет..

person Nikhil Borad    schedule 12.08.2016
comment
Я уже читал этот ответ: stackoverflow.com/questions/3980510/, но это не сработало. Вы пробовали это? - person NovusMobile; 12.08.2016

Вы не можете установить inputType в InputMethodManager. Но обходной путь, с которым я столкнулся, заключается в том, чтобы поместить текст редактирования в макет и установить inputType как число в xml и скрыть это представление. Затем во время выполнения используйте этот текст редактирования, чтобы отобразить цифровую клавиатуру. Нравится :

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(your_edittext, 0);
person Akshay Bhat 'AB'    schedule 12.08.2016
comment
Для Android-приложений мы можем сделать это, но, как я уже говорил, в это нельзя поместить какой-либо виджет. Я работаю над частью JNI - person NovusMobile; 12.08.2016

Вы можете попробовать это

edittext.setInputType(InputType.TYPE_CLASS_NUMBER);
person Rathod Vijay    schedule 12.08.2016