我有两个EditText字段和一个按钮,
EditText topNumericInputField; // Top text field
EditText bottomNumericInputField; // Bottom text field
Button clearButton; // Regular Button
当我更改焦点时,我正在尝试清除其中的文本,我的onClick方法如下所示:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.topInputField:
clearTextBoxes();
break;
case R.id.bottomNumericInputField:
clearTextBoxes();
break;
case R.id.clearButton:
clearTextBoxes();
break;
}
}
private void clearTextBoxes() {
topNumericInputField.getText().clear();
bottomNumericInputField.getText().clear();
}
现在,它可以通过以下方式清除两个字段:
a)我点击的字段已经有焦点
或
b)我点击清除按钮
如果我将焦点从顶部字段更改为底部字段,它会获得焦点,然后我需要再次单击它。
我不确定究竟发生了什么,但我确定它与LogCat日志中出现的内容有关,每当我改变焦点时会出现两行:
Tag: IInputConnectionWrapper Text: beginBatchEdit on inactive InputConnection
Tag: IInputConnectionWrapper Text: endBatchEdit on inactive InputConnection
我已经尝试过搜索,我看到一些类似的提交,但似乎没有一个真正是我正在寻找的。 p>
谢谢!
答案 0 :(得分:1)
我认为问题不在于设置文本,但问题在于捕获错误的事件。
正如您所说,您希望在更改焦点时清除edittext,然后您应该覆盖onFocusChange(View v, boolean hasfocus)
以捕获该事件。您需要实施FocusChangeListener
。
edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean focus) {
if (focus) {
((EditText)v).setText("");
}
}
});
一个简单的实现应如上所示。 Refer this了解详细信息
答案 1 :(得分:0)
您可以将文本设置为null。
topNumericInputField.setText("");
bottomNumericInputField.setText("");
答案 2 :(得分:0)
您只需要通过以下方式清除文字:
topNumericInputField.setText("");
bottomNumericInputField.setText("");