¿Cómo evitar que un EditText de Android muestre el teclado cuando recibe el foco (sin deshabilitar el control)?

publicado por: Anonymous

Sucede que tengo un Edit Text de tipo textPersonName y cuando le paso el foco a otro Edit Text de tipo date me muestra el teclado virtual pero yo quiero que no me lo muestre, ya que en su lugar quiero que se muestre un dialogo que contenga un DatePicker (el cual ya lo tengo)

Esta pregunta ya la hicieron y la solucion que lei es:

TuEditText.setInputType(InputType.TYPE_NULL); 

y en el xml:

android:inputType="none"

pero esto solo quita el foco y debo dar clic en el EditText para mostrar el dialogo del DatePicker y yo pretendo que conserve el foco pero que no muestre el teclado virtual y muestre mi dialogo de DatePicker

otra solucion que vi es quitar el foco del EditText date con el siguiente codigo:

android:focusable="false"

pero esto no es lo que pretendo realizar ya que al quitar el foco debo dar clic en el EditText para mostrar el dialogo del DatePicker repito pretendo que conserve el foco pero que no muestre el teclado virtual y muestre mi dialogo de DatePicker

A continuacion les dejo el codigo xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">

 <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:ems="10"
        android:id="@+id/txt_practica"
        android:hint="Practica"
        android:layout_marginTop="9dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="date"
        android:ems="10"
        android:hint="Fecha de uso"
        android:id="@+id/txt_fechadeuso"
        android:layout_below="@+id/txt_practica"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="16dp"
        android:onClick="mostrarCalendario" />

</RelativeLayout>

solución

Puedes probar esto:

if(tuEdtittext.requestFocus()) {
esconderTecladoyAbrirElDatePicker();
}

También intenta haciendo uso de OnFocusChangeListener :

 tuEdittext .setOnFocusChangeListener(new OnFocusChangeListener() {          

    public void onFocusChange(View v, boolean hasFocus) {
        //Escondes el teclado y muestras el datePicker
    }
});
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *