Wyłącz migający kursor EditText
Czy ktoś wie jak wyłączyć migający kursor w widoku EditText
?
4 answers
Możesz użyć atrybutu xml android:cursorVisible="false"
lub funkcji java setCursorVisible(false)
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-25 15:12:23
Idealne rozwiązanie, które idzie dalej do celu
Cel: wyłączenie migającego kursora, gdy {[3] } nie jest ustawiona ostrość, i włączenie migającego kursora, gdy EditText
jest ustawiona ostrość. Poniżej również otwiera klawiaturę po kliknięciu EditText
i ukrywa ją po naciśnięciu przycisku Gotowe na klawiaturze.
1) Ustaw w swoim xml pod swoim EditText
:
android:cursorVisible="false"
2) Set onClickListener:
iEditText.setOnClickListener(editTextClickListener);
OnClickListener editTextClickListener = new OnClickListener()
{
public void onClick(View v)
{
if (v.getId() == iEditText.getId())
{
iEditText.setCursorVisible(true);
}
}
};
3) Następnie onCreate
, uchwyć zdarzenie po naciśnięciu przycisku done używając OnEditorActionListener
do swojego EditText
, a następnie setCursorVisible(false)
.
//onCreate...
iEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
iEditText.setCursorVisible(false);
if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(iEditText.getApplicationWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
}
return false;
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-18 09:17:04
Możesz użyć poniższego kodu, aby programowo włączyć i wyłączyć edytowanie kursora tekstu.
Aby włączyć kursor
editText.requestFocus();
editText.setCursorVisible(true);
Aby wyłączyć kursor
editText.setCursorVisible(false);
Using XML enable disable cursor
android:cursorVisible="false/true"
android:focusable="false/true"
Aby wybrać edit_text (Kopiuj/wytnij / wklej/wybierz / Wybierz wszystko)
editText.setTextIsSelectable(true);
Aby skupić się na trybie dotykowym napisz następujące linie w XML
android:focusableInTouchMode="true"
android:clickable="true"
android:focusable="true"
Programowo
editText.requestFocusFromTouch();
Aby wyczyścić ostrość w trybie dotykowym
editText.clearFocus()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-15 12:23:40
W moim przypadku chciałem włączyć / wyłączyć kursor, gdy edycja jest skupiona.
W Twojej aktywności:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (v instanceof EditText) {
EditText edit = ((EditText) v);
Rect outR = new Rect();
edit.getGlobalVisibleRect(outR);
Boolean isKeyboardOpen = !outR.contains((int)ev.getRawX(), (int)ev.getRawY());
System.out.print("Is Keyboard? " + isKeyboardOpen);
if (isKeyboardOpen) {
System.out.print("Entro al IF");
edit.clearFocus();
InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edit.getWindowToken(), 0);
}
edit.setCursorVisible(!isKeyboardOpen);
}
}
return super.dispatchTouchEvent(ev);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-29 18:13:29