gpt4 book ai didi

Android EditText : Listeners, 换行符和焦点

转载 作者:搜寻专家 更新时间:2023-11-01 08:16:59 24 4
gpt4 key购买 nike

目前我有一个 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,它实际上不会执行任何操作。有点奇怪。

最佳答案

我认为对于你的 EditText 创建一个新行,你可以通过用完成按钮替换回车按钮来做到这一点:

yourEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);

为此,您可以将其放入描述您的 EditText 的 xml 文件中:

android:maxLines="1"

关于Android EditText : Listeners, 换行符和焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3503305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com