Я очень новичок в разработке Android-приложения, и я столкнулся с трудность.
Что я хочу сделать, это использовать определенную клавиатуру, когда я нажимаю на
EditText
. До сих пор я нашел Keyboard
и KeyboardView
но мне еще не удалось сделать то, что я хочу.
Вот описание того, где я:
clavier=new KeyboardView(activité,
(AttributeSet)findViewById(R.xml.clavier_numerique));
Я что-то делаю неправильно? Что еще мне делать?
Спасибо заранее за то время, которое вы потратите, пытаясь помочь мне.
Вы должны использовать что-то вроде этого:
//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>
Сначала вы должны решить, что вы хотите от клавиатуры:
Если вы просто хотите изменить номера, вы можете сделать это первым ответом с Macarse
если вы хотите полностью настроить клавиатуру, вы должны использовать классы Keyboard
и KeyboardView
вторым проектом
Когда вы инициализируете его с помощью 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);
}
Вам нужно указать inputType
в xml:
<EditText android:inputType="textUri"/>
или из кода:
EditText input;
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Вы можете прочитать здесь inputType
.