目前我有一个edittext字段,当用户按下输入时,它主要执行我想要的操作,验证IP地址格式并通知用户是否错误。我该如何做到这一点,所以当用户按下回车键时,它会检查它是否应该不输入换行符?
这是我的代码。
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
if(validateIPaddress(m_etIPAddress.getText().toString()))
{
ConfigData.m_IPAddress = m_etIPAddress.getText().toString();
}
else
{
showAlertDialog("Invalid IP Address\n Example: \n255.255.255.255\n0.0.0.0","Error: ");
m_etIPAddress.setText(ConfigData.m_IPAddress);
m_etIPAddress.requestFocus();
}
return false;
}
我遇到的另一个问题是,在验证的错误条件下,它不会调出软键盘来允许用户重新编辑该文本字段。如果用户单击另一个编辑文本,窗口会为其提供焦点,并允许用户编辑第二个文本字段,同时仍保持原始编辑文本周围的“绿色轮廓”。有没有办法来解决这个问题?
编辑:
感谢您的回复。EditText 仍然创建一个换行符。我尝试在创建 EditText 并显示对话框时调用它,然后在开头插入换行符。这很奇怪,因为
m_etIPAddress.setText(ConfigData.m_IPAddress);
应该自动将该字段中的任何内容覆盖到保存在 ConfigData 中的静态 IP。(我的设置类),我认为焦点可能有效,问题是在 requestFocus 之后,EditText 显示它有焦点但没有响应。
我可以单击其他 EditText 并对其进行修改,同时它仍会在 IP EditText 上显示焦点轮廓。如果我点击 IP EditText 它实际上并没有做任何事情。有点奇怪。