【问题标题】:How to display android numeric keyboard?如何显示安卓数字键盘?
【发布时间】:2016-05-06 12:50:23
【问题描述】:

我想在片段启动时显示 android 键盘。

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

我使用此代码并且它有效。但是如何将键盘更改为数字键盘?只有号码。以及如何监听键盘上的“1”之类的键盘事件被按下?

【问题讨论】:

  • 你有EditText 来接受键盘输入吗?
  • 在片段中使用 inputType="number" 作为编辑文本。
  • @Sharj 我没有 EditText。我想用键盘来更新界面。就像我有一个图像视图。我想做:当用户在软键盘上点击“1”,然后在图像视图中改变图像。
  • 可能按钮更好,或者你应该使用 EditText。

标签: android


【解决方案1】:

希望帮助某人陷入困境,这是我的解决方案。

(甚至知道这不是我在此页面中多次遇到的确切问题,因为问题的提出方式)

基于此解决方案Soft Keyboard for Dialog and Activity 我得到了在打开屏幕时显示片段内的数字键盘的答案。

首先你必须确保你在 .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();
}

【讨论】:

    【解决方案2】:

    您需要在将键盘绑定到的任何视图上创建一个 InputConnection,并从该视图的 onCreateInputConnection 函数中返回它。设置 EditorInfo 输出参数时,请将类型设置为数字。要监听按键,覆盖 commitText 函数并处理它。您还必须处理设置文本而不是最初调用 commitText 的可能性。真的不建议进行自定义键盘处理,它非常复杂。您最好创建自己的“键盘”,上面有 9 个数字作为按钮并使用 onClickHandlers。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 2023-01-17
      • 2015-07-27
      • 2015-10-10
      • 2011-06-08
      相关资源
      最近更新 更多