按下完成键后,EditText将被清除,并且行为异常

时间:2018-09-13 04:42:55

标签: android android-edittext

EditText new

附加到我的TextView.OnEditorActionListener()
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {

 if(i == EditorInfo.IME_ACTION_DONE){

  dataSnapshot.child("add").child(child.getKey()).child("comment").getRef().setValue(String.valueOf(serviceComment.getText()));
  return true;

 }else{

  return false;

 }

}

执行后,当我希望保留它们时,EditText中的文本将被清除。

另外,在清除它之后,我键入相同的内容,直到我键入与以前键入的内容不同的代码,代码才会执行​​且键盘不会消失。

我的最终目标是让EditText中的文本在单击完成并隐藏键盘后保持不变。

这是我的EditText

的XML
<EditText
        android:id="@+id/txtComment"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@color/colorSecondary"
        android:hint="Enter a comment"
        android:imeOptions="actionDone"
        android:maxLength="200"
        android:maxLines="1"
        android:singleLine="true"
        android:textColor="@color/colorBlack"
        android:textSize="14sp" />

1 个答案:

答案 0 :(得分:0)

要隐藏键盘,您必须在侦听器回调中执行此操作:

InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

请尝试。

此外,“编辑文本”清除问题可能是由于以下原因引起的: dataSnapshot.child(“ add”)。child(child.getKey())。child(“ comment”)。getRef()。setValue(String.valueOf(serviceComment.getText()));

此行可能导致UI挂起,并且可能是原因。

尝试在另一个线程中调用该操作。