2

Приложение имеет активность, которая не имеет виджетов, таких как textview, EditText, button.Отображение числовой клавиатуры во время выполнения по умолчанию для работы

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

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

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

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

У любого есть идея, как этого достичь?

ответ

1

С помощью пользовательского просмотра вы можете достичь, как это, нормально с 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; 
    } 
} 

Надеется, что это помогает ..

+0

Я уже прочитал этот ответ: http://stackoverflow.com/questions/3980510/display-a-numeric-keypad-on-activity-without-an-input-area?rq=1, но это не работает. Вы попробовали это? – NovusMobile

+0

использовал много раз раньше .. знаю только, что я следил за этим ... –

0

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

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(your_edittext, 0); 
+0

Для Android приложений pointof вы, мы можем это сделать , но, как я уже сказал, невозможно вставить в это виджет. Я работаю над частью JNI – NovusMobile

0

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

edittext.setInputType(InputType.TYPE_CLASS_NUMBER); 
Смежные вопросы