Индивидуальная клавиатура

1

Я очень новичок в разработке Android-приложения, и я столкнулся с трудность.

Что я хочу сделать, это использовать определенную клавиатуру, когда я нажимаю на EditText. До сих пор я нашел Keyboard и KeyboardView но мне еще не удалось сделать то, что я хочу.

Вот описание того, где я:

  • Я описал свою клавиатуру в XML файле,
  • Я создаю объект "KeyboardView",
  • Я инициализирую его clavier=new KeyboardView(activité, (AttributeSet)findViewById(R.xml.clavier_numerique));
  • но я не знаю, как заменить стандартную клавиатуру этим настраиваемая клавиатура.

Я что-то делаю неправильно? Что еще мне делать?

Спасибо заранее за то время, которое вы потратите, пытаясь помочь мне.

Теги:

4 ответа

2

Вы должны использовать что-то вроде этого:

    //retrieve the keyboard view from xml
    kbdV= (KeyboardView) findViewById(R.id.kbd);

    //set the keyboard layout to the layout you defined in res/xml/keyboard_layout.xml
    kbdV.setKeyboard(new Keyboard(this,R.xml.keyboard_layout)); //defines the keyboard layout

    //add a keyboard action listener
    kbdV.setOnKeyboardActionListener(new KeyboardView.OnKeyboardActionListener(){
        public void onKey(int primaryCode, int[] keyCodes) {
            handlePress(primaryCode, keyCodes); // callback to handle keypresses
        }
        public void onPress(int primaryCode) {}
        public void onRelease(int primaryCode) {}
        public void onText(CharSequence text) {}
        public void swipeDown() {}
        public void swipeLeft() {}
        public void swipeRight() {}
        public void swipeUp() {}
    });

с XML файлом макета, подобным этому:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<!-- your widgets here -->

<KeyboardView android:id="@+id/kbd" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
</LinearLayout>
1

Сначала вы должны решить, что вы хотите от клавиатуры:

Если вы просто хотите изменить номера, вы можете сделать это первым ответом с Macarse
если вы хотите полностью настроить клавиатуру, вы должны использовать классы Keyboard и KeyboardView вторым проектом

0

Когда вы инициализируете его с помощью clavier = new KeyboardView (активность, (AttributeSet) findViewById (R.xml.clavier_numerique), EditText edit); Вы можете перенести объект EditText. И скрыть стандартную клавиатуру, покажите настроенный KeyboardView следующим образом.

public void showKeyboard() {  
 if (edit != null) {
         InputMethodManager imm = (InputMethodManager)mActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
         imm.hideSoftInputFromWindow(edit.getWindowToken(), 0);
    }

    keyboardView.setVisibility(View.VISIBLE);
    keyboardView.setEnabled(true);
}  
0

Вам нужно указать inputType в xml:

<EditText android:inputType="textUri"/>

или из кода:

EditText input;
input.setInputType(InputType.TYPE_CLASS_NUMBER);

Вы можете прочитать здесь inputType .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню