我是开发Android应用程序的新手,我正面临着一个问题 困难。
我想要做的是在点击时使用特定的键盘
EditText
。到目前为止,我找到了Keyboard
和KeyboardView
上课,但我还没有成功做我想做的事。
这是我所在位置的描述:
clavier=new KeyboardView(activité,
(AttributeSet)findViewById(R.xml.clavier_numerique));
我做错了吗?我还应该做什么?
提前感谢您花时间来帮助我。
答案 0 :(得分: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 :(得分:1)
首先,你应该从键盘决定你想要什么:
如果您只想更改为数字,可以通过Macarse的第一个答案来完成
如果您想要一个完整的自定义键盘,您应该通过第二个项目使用Keyboard
和KeyboardView
类
答案 2 :(得分:0)
您需要在xml中指定inputType
:
<EditText android:inputType="textUri"/>
或来自代码:
EditText input;
input.setInputType(InputType.TYPE_CLASS_NUMBER);
您可以阅读可用的inputType
s here。
答案 3 :(得分:0)
使用clavier = new KeyboardView初始化它时(活动, (AttributeSet)findViewById(R.xml.clavier_numerique),EditText编辑); 您可以传输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);
}