gpt4 book ai didi

android - 在没有输入区域的 Activity 上显示数字键盘

转载 作者:行者123 更新时间:2023-11-29 02:15:54 24 4
gpt4 key购买 nike

我使用下面的代码在我的Activity中弹出软输入键盘


InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.getInputMethodList();

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

这会显示字母键盘。

但是我想显示数字键盘。

请注意,我知道在与 Edittext 或 TextView 一起使用时使用 setInputType() 是有效的,但我希望能够在没有输入区域(例如 EditText)的情况下显示键盘,并只听键盘上的按键。

谁能证实这是否可行,如果可行,如何实现?

最佳答案

这确实是可以实现和可能的。

长话短说:

覆盖 onCreateInputConnection 并请求数字键盘:

public class CustomView extends View {

[your methods here]

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection connection = super.onCreateInputConnection(outAttrs);
outAttrs.inputType |= InputType.TYPE_CLASS_NUMBER;
return connection;
}
}

完整解释

您已将 View 子类化以创建您自己的自定义 View :

public class CustomView extends View {
[your methods here]
}

在此自定义 View 中,您使用的是 InputMethodManager显示键盘。这位经理将把输入委托(delegate)给 InputConnection ,然后将委托(delegate)给 InputMethod .

要请求他们的键盘显示为数字,您需要覆盖 onCreateInputConnection返回数字键盘。你可以不厌其烦地实现你自己的 BaseInputConnection ,或者您可以重用 super(在本例中为 View)为您创建的那个,并设置您关心的属性(inputType ).

关于android - 在没有输入区域的 Activity 上显示数字键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3980510/

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