EditText不接受数字

时间:2014-04-17 00:47:21

标签: android

客户正在测试我为他们制作的Android应用,他们正在使用平板电脑。他们说他们不能在EditText中输入数字,但它似乎可以在我的手机上运行。可能是什么原因或者这个?

以下是特定EditText的代码:

pWord = (EditText)findViewById(R.id.passwordsignin);
        y = false;
        signIn = (Button) findViewById(R.id.signin);
        pWord.setOnKeyListener(new OnKeyListener(){

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                if(event.getAction() == KeyEvent.ACTION_DOWN  && keyCode == KeyEvent.KEYCODE_ENTER){
                    y = true;
                    new RegisterDeviceAsynctask().execute();
                }
                return true;
            }

        });

和XML:

<EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:ems="10"
            android:id="@+id/passwordsignin"
            android:layout_below="@+id/emailsignin"
            android:layout_centerHorizontal="true"
            android:hint="Password"
            android:layout_marginTop="10dip"/>

编辑:当我结束setOnKeyListener代码时,问题就结束了。知道为什么会这样吗?

5 个答案:

答案 0 :(得分:0)

告诉您的客户端使用两种类型的文本,例如:android:inputType =“typeOne | typeTwo”...更改typeOne和Two并使用Log打印实际输出。

答案 1 :(得分:0)

一些建议: 1.你的android:inputType =“textPassword”不会让任何人看到输入的内容。尝试更改android:inputType =“text”,以便查看是否输入了预期的字符。这将让你调试问题。用户可能会输入错误信息。 2.尝试记录密码或将其放入Toast中,以便用户可以看到他们输入的内容。

以上建议仅适用于调试期。要发布,您不希望有这些。您的用户可能应该在调试期后(或之前,更改为临时密码,然后将其更改回真实密码)更改密码。

答案 2 :(得分:0)

尝试this

android:inputType="TYPE_TEXT_VARIATION_PASSWORD|TYPE_NUMBER_VARIATION_PASSWORD"

这将确保为其选择适当的键盘/输入法(这可能取决于实际的硬件制造商)。

如果这不起作用,请让他们将物理键盘与平板电脑分开,以使软键盘出现。

如果这不起作用,请查看他们是否安装了第三方自定义键盘。我们不仅拥有不同的硬件制造商,而且由于人们可以从Google Play安装自己的键盘,这是另一种可能性。

如果这不起作用,请让他们截取他们正在使用的键盘截图,以最佳方式匿名屏幕截图,然后在问题中将其发布到此处。

答案 3 :(得分:0)

稍微改变你的代码:

pWord = (EditText)findViewById(R.id.passwordsignin);
        y = false;
        signIn = (Button) findViewById(R.id.signin);
        pWord.setOnKeyListener(new OnKeyListener(){

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                if(event.getAction() == KeyEvent.ACTION_DOWN  && keyCode == KeyEvent.KEYCODE_ENTER){
                    y = true;
                    new RegisterDeviceAsynctask().execute();
                    return true;
                }
                return false;
            }

        });

答案 4 :(得分:-1)

只需将此代码用作SetOnKeyListener

即可
if (keycode==keyevent.keyback)
{
...
}
else
{
return false;
}