客户正在测试我为他们制作的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代码时,问题就结束了。知道为什么会这样吗?
答案 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;
}