如何显示安卓数字键盘?

3
我希望在Fragment启动时显示Android键盘。
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

我使用这段代码,它有效。但是如何将键盘更改为数字键盘?仅限数字输入。如何监听按下键盘上的“1”等键盘事件?


可能是默认带数字键盘但允许输入字母的EditText的重复问题。 - Gavriel
你有一个EditText来接收键盘输入吗? - Sharjeel
在你的fragment中,使用inputType="number"来定义你的edittext。 - user5156016
@Sharj 我没有EditText。我想使用键盘来更新界面。比如我有一个ImageView。我想实现的是:当用户在软键盘上点击“1”时,更改ImageView中的图像。 - Meng Tim
可能按钮更适合这个场景,或者你可以使用一个EditText。 - user5156016
你有找到任何默认显示数字键盘的方法吗? - NovusMobile
2个回答

1

希望能够帮助有卡顿困扰的人,这是我的解决方案。

(虽然这不是确切的问题,但因为问题的表述方式,我在这个页面上经常遇到。)

基于这个解决方案 Dialog 和 Activity 的软键盘,我得到了一个显示数字键盘的方法,在打开屏幕时在 Fragment 中显示它

首先你必须确定你在 .XML 文件中的元素是数字类型。

android:inputType="number"

然后,在您的代码内执行以下操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    fragmentView = super.onCreateView(inflater, container, savedInstanceState);
    getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

    return fragmentView;
}

不要忘记聚焦你的元素,像这样

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    myElement.requestFocus();
}

0

你需要在绑定键盘的任何视图上创建一个InputConnection,并从该视图的onCreateInputConnection函数中返回它。当设置EditorInfo输出参数时,将类型设置为numeric。要监听按键,请重写commitText函数并处理它。您还必须处理可能首先调用组合文本而不是commitText的情况。自定义键盘处理真的不建议,它非常复杂。最好创建一个带有9个数字按钮的自己的“键盘”,并使用onClickHandlers。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接