一旦用户停止键入或单击完成,如何更改EditText视图的可见性?我试过这样做,但我收到了错误消息。
package com.example.android.monopolycredit;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.TextView;
public class LoginLobby extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_lobby);
final EditText usernameEditText = findViewById(R.id.usernameField);
usernameEditText.setOnEditorActionListener(
new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH ||
actionId == EditorInfo.IME_ACTION_DONE ||
event.getAction() == KeyEvent.ACTION_DOWN &&
event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
if (!event.isShiftPressed()) {
// the user is done typing.
usernameEditText.setVisibility(View.GONE);
return true; // consume.
}
}
return false; // pass on to other listeners.
}
});
}
}
任何帮助都将不胜感激。我是android开发的新手。提前谢谢。:)
发布于 2017-12-31 12:04:54
当用户停止键入时,如何更改EditText视图的可见性.
没有这样的事件可以告诉您用户已经停止键入。即使用户停止键入,EditText
字段中仍然有一个EditText
,这意味着他可以继续输入。因此,在这种情况下,您无法确定他是否真的停止输入文本。
还是点击完成?
这已经是可能的了。为了侦听键盘更改(如完成操作),只需在现有代码中添加actionId == EditorInfo.IME_ACTION_DONE
:
EditText usernameEditText = findViewById(R.id.usernameField);
usernameEditText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event){
if (actionId == EditorInfo.IME_ACTION_DONE && !event.isShiftPressed()) {
// the user is done typing.
usernameEditText.setVisibility(View.GONE);
return true;
}
return false;
}
});
https://stackoverflow.com/questions/48044817
复制相似问题