[英]EditText:how to change visibility once the user has done finished typing?
用戶停止鍵入或單擊完成后,如何更改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開發的新手。 提前致謝。 :)
用戶停止鍵入后,如何更改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;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.