style - propiedades edittext android
Deshabilitar el cursor parpadeante de EditText (4)
En mi caso, quería habilitar / deshabilitar el cursor cuando la edición está enfocada.
En tu actividad:
@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);
}
¿Alguien sabe cómo deshabilitar el cursor parpadeante en una vista EditText
?
La solución perfecta que va más allá de la meta
Objetivo: deshabilita el cursor intermitente cuando EditText
no está enfocado, y habilita el cursor intermitente cuando EditText
está enfocado. A continuación, también se abre el teclado cuando se hace clic en EditText
, y se oculta cuando se presiona "done" en el teclado.
1) Establezca en su xml debajo de su EditText
:
android:cursorVisible="false"
2) Establecer enClickListener:
iEditText.setOnClickListener(editTextClickListener);
OnClickListener editTextClickListener = new OnClickListener()
{
public void onClick(View v)
{
if (v.getId() == iEditText.getId())
{
iEditText.setCursorVisible(true);
}
}
};
3) luego onCreate
, captura el evento cuando se hace OnEditorActionListener
en OnEditorActionListener
con OnEditorActionListener
en tu EditText
y luego 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;
}
});
Puede usar el atributo xml android:cursorVisible="false"
o la función java setCursorVisible(false)
.
Puede usar el siguiente código para habilitar y deshabilitar el cursor de edición de texto mediante programación.
Para habilitar el cursor
editText.requestFocus();
editText.setCursorVisible(true);
Para deshabilitar el cursor
editText.setCursorVisible(false);
Usando XML habilita el cursor de deshabilitar
android:cursorVisible="false/true"
android:focusable="false/true"
Para que edit_text Seleccionable para (copiar / cortar / pegar / seleccionar / seleccionar todo)
editText.setTextIsSelectable(true);
Para enfocarse en el modo táctil, escriba las siguientes líneas en XML
android:focusableInTouchMode="true"
android:clickable="true"
android:focusable="true"
programáticamente
editText.requestFocusFromTouch();
Para borrar el enfoque en el modo táctil
editText.clearFocus()