仅限键盘编号的EditText视图

Jor*_* B. 43 android android-layout android-edittext

我想要一个只有可见数字的键盘到EditText视图.没有任何其他角色.

我已经测试了所有可用的输入并且不起作用.我已经搜索了一种只使用数字键盘的方法,但我只看到过引用:

android: inputType = "numberPassword"
Run Code Online (Sandbox Code Playgroud)

但我想在EditText中看到可见的数字.有人可以帮帮我吗?

我想要一个这样的键盘:(numberPassword)

在此输入图像描述

我尝试过:

android:digits="0123456789"
android:inputType="phone"
Run Code Online (Sandbox Code Playgroud)

android:inputType="number"
Run Code Online (Sandbox Code Playgroud)

看起来像那样:

在此输入图像描述

Mau*_*ori 89

经过几次尝试,我明白了!我正在以编程方式设置键盘值

 myEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD); 
Run Code Online (Sandbox Code Playgroud)

或者如果你想要你使用XML视图就像:

android: inputType = "numberPassword"
Run Code Online (Sandbox Code Playgroud)

两个配置都会显示密码项目符号,并且我们在EditText上查看显示数字,我们需要创建一个自定义的ClickableSpan类.

 private class NumericKeyBoardTransformationMethod extends PasswordTransformationMethod {
    @Override
    public CharSequence getTransformation(CharSequence source, View view) {
        return source;
    }
}
Run Code Online (Sandbox Code Playgroud)

最后我们需要将它实现到EditText以显示键入的字符.

myEditText.setTransformationMethod(new NumericKeyBoardTransformationMethod());
Run Code Online (Sandbox Code Playgroud)

这就是我的键盘现在的样子

  • 2年后我得到了正确答案,恭喜:) (8认同)
  • 这是我发现的唯一有效的解决方案.谢谢! (4认同)
  • 在 kotlin 中,如果您不需要项目符号,只需编写: myEditText .transformationMethod = null (3认同)
  • 惊人的答案! (2认同)

Kan*_*nth 19

android:inputType="number"android:inputType="phone".你可以保留这个.您将获得包含数字的键盘.有关不同类型键盘的更多详细信息,请查看此链接.

我认为只有你自己创建软键盘才有可能.或试试这个android:inputType="number|textVisiblePassword.但它仍然显示其他角色.此外,你可以保持android:digits="0123456789"只允许你的数字edittext.或者,如果您仍然需要与图像相同,请尝试将两个或多个要素与|组合使用 分离并检查你的运气,但据我所知,你必须创建自己的键盘,以获得完全相同的..


Mor*_*ori 12

如果您使用科特林

XML

android:inputType="numberPassword"
Run Code Online (Sandbox Code Playgroud)

代码

editText.transformationMethod = null
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述


Mud*_*een 6

<EditText
        android:id="@+id/editText3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10"
        android:inputType="number" />
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有事情,现在尝试显示其他字符,但是您不能输入editText

edit.setRawInputType(Configuration.KEYBOARD_12KEY);
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 无效,出现以下字符:“。” “-”“” (3认同)

Jea*_*vie 5

如果您只想显示数字而不显示字符,请将这行代码放入您的 XML 文件中android:inputType="number"。输出:

在此输入图像描述

如果您想显示一个同时显示字符的数字键盘,请 android:inputType="phone"添加您的 XML。输出(带字符):

有字符

如果您想显示一个数字键盘来像密码一样屏蔽您的输入,请输入android:inputType="numberPassword". 输出:

在此输入图像描述

如果我只发布屏幕截图的链接,我真的很抱歉,我想研究如何在这里真正发布图像,但这可能会占用我的时间,所以就在这里。我希望我的帖子可以帮助其他人。是的,我的答案与此处发布的其他答案重复,但为了节省其他人可能需要在看到输出之前运行代码的时间,我的帖子可能会为您节省一些时间。