I have an EditText
in application. When I press space
key twice through soft keyboard, a period should be inserted in that EditText
.
How can I do that?
I have an EditText
in application. When I press space
key twice through soft keyboard, a period should be inserted in that EditText
.
How can I do that?
试试InputFilter
。这些使您能够检查哪些文本输入到您的EditText
. 因此,如果您两次检测空间(为此您可以制作计数器),您可以修剪您的文本 append 。并再次展示。
您可以根据需要更改以下代码。
InputFilter filter=new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
// TODO Auto-generated method stub
for (int i = start; i < end; i++)
{
if(Character.isSpace(source.charAt(i)))
{
return " ";
}
else if (!Character.isLetter(source.charAt(i)))
{
return "";
}
}
return null;
}
};
edittext.setFilters(new InputFilter[]{filter});
您如何创建几个布尔值,在视图上添加一个侦听器并将它们设置为 true 用于输入, false 用于无输入。-> 如果用户按下不允许的键,则将它们全部设置为 false。否则,当它们都是真的时,做你需要做的事情。如果您愿意,您可以添加检查订单的逻辑。
将TextChangedListener 添加到您的EditText
. 并覆盖afterTextChanged()
它的方法。现在检查" "
Edittext 的文本中的(双空格),如果它包含,只需将其替换为"."
就像是,
final EditText edit = (EditText) findViewById(R.id.editText);
edit.addTextChangedListener(new TextWatcher()
{
@Override
public void afterTextChanged(Editable editable)
{
if (editable.toString().contains(" "))
{
edit.setText(ed.getText().toString().trim());
edit.append(".");
}
}
});