定制键盘

时间:2011-01-14 14:56:29

标签: android

我是开发Android应用程序的新手,我正面临着一个问题 困难。

我想要做的是在点击时使用特定的键盘 EditText。到目前为止,我找到了KeyboardKeyboardView 上课,但我还没有成功做我想做的事。

这是我所在位置的描述:

  • 我在XML文件中描述了我的键盘,
  • 我创建了一个“KeyboardView”对象,
  • 我使用clavier=new KeyboardView(activité, (AttributeSet)findViewById(R.xml.clavier_numerique));
  • 初始化它
  • 但我不知道如何用这个替换标准键盘 定制键盘。

我做错了吗?我还应该做什么?

提前感谢您花时间来帮助我。

4 个答案:

答案 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的第一个答案来完成 如果您想要一个完整的自定义键盘,您应该通过第二个项目使用KeyboardKeyboardView

答案 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);
}