gpt4 book ai didi

Android 自定义键盘 - 如何检测请求的键盘类型

转载 作者:行者123 更新时间:2023-11-30 00:35:54 31 4
gpt4 key购买 nike

正在关注 this tutorial我已经创建了一个完全可用的 Android 操作系统键盘。它是标准的 qwerty 字母/数字。

我有第二个数字键盘的键盘标记。

我似乎无法检测到文本输入框正在指定哪种类型的键盘。 edittext指定类型editText.setInputType(InputType.TYPE_CLASS_TEXT);但是我的 IME 服务如何检测到这一点,以便它可以显示正确的键盘?

public class MyKeybdIME extends InputMethodService implements KeyboardView.OnKeyboardActionListener {
private KeyboardView kv;
private Keyboard keyboard;
private Keyboard numboard;
private boolean caps = false;
@Override
public View onCreateInputView() {
kv = (MKeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null);
keyboard = new Keyboard(this, R.xml.qwertyfull);
numboard = new Keyboard(this, R.xml.num);

// InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//How can you detect what is being asked for?
// imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
// Or am I on the wrong path for this part?


kv.setKeyboard(keyboard);//... Or numboard when the entry requests a numeric keyboard
kv.setOnKeyboardActionListener(this);
return kv;
}

最佳答案

您可以在自定义键盘类中覆盖 onStartInput。这是取自 sample Android keyboard 的相关代码:

@Override public void onStartInput(EditorInfo attribute, boolean restarting) {
// ...

switch (attribute.inputType & InputType.TYPE_MASK_CLASS) {
case InputType.TYPE_CLASS_NUMBER:
// ...
break;
case InputType.TYPE_CLASS_DATETIME:
// ...
break;
case InputType.TYPE_CLASS_PHONE:
// ...
break;
case InputType.TYPE_CLASS_TEXT:
// ...
break;
default:
// ...
}

// ...
}

关于Android 自定义键盘 - 如何检测请求的键盘类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43414607/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com