Estoy en vías de desarrollo y aplicación de Android utilizando el SDK 1.6. Estoy usando un TimePicker y no quiero el teclado para venir para arriba cuando usted haga clic en los dígitos en la TimePicker. Yo sólo quiero el TimePicker a cambiarse con los botones de más y menos. He intentado usar android:focusable="false" y android:focusableInTouchMode="false" con la esperanza de aquellos que lo haría, pero no parece hacer nada. Es allí una manera de hacer esto?

InformationsquelleAutor ashughes | 2010-03-06

7 Comentarios

  1. 55

    trate de usar:

    myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);

    para desactivar el foco en el texto vistas de la interna NumberPickers

    • Esto también funciona para el selector de fecha, sólo tiene que utilizar selector de fecha.FOCUS_BLOCK_DESCENDANTS lugar.
    • Sólo el uso de ViewGroup.FOCUS_BLOCK_DESCENDANTS.. todos tienen el mismo valor – __ – ‘
    • Usted también puede usar android:descendantFocusability=»blocksDescendants» en xml.
  2. 12

    De Otra Manera . Agregar esta en el XML:

    android:descendantFocusability="blocksDescendants"

    • Esta respuesta debe obtener más upvotes como se resuelve el problema en sí xml
  3. 2

    No sé si esto funciona para TimePicker, pero he encontrado la correcta parámetro a utilizar para evitar que el teclado de mostrar al enfocar una edición de texto o usar el copiar y pegar del menú en su contenido:

    Primer lugar, usted debe llamar a setInputType(InputType.TYPE_NULL) en el editText.

    Siguiente instancia del InputTypeManager:

    InputMethodManager imm = 
    (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

    Y, a continuación, llamar a hideSoftInputFromWindow() en el imm objeto, pero el uso de la InputMethodManager.HIDE_NOT_ALWAYS como segundo parámetro en lugar de 0 (como se recomienda en la primera respuesta):

    imm.hideSoftInputFromWindow(editText.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS)

    Esto evitará que el teclado de siempre apareciendo al hacer clic/centrando esta EditText control, incluso cuando se utiliza la tecla de menú para realizar operaciones de copiar/pegar.

    PS: si desea evitar operaciones de copiar/pegar puede llamar editText.setEditable(false) pero entonces usted no será capaz de cambiar dinámicamente el EditText del contenido.

  4. 2

    He intentado (orientación 4.0.3)

    myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);

    sin éxito. Después de buscar en google «android TimePicker BLOCK_DESCENDANTS no funciona» he seguido el golpe

    http://code.google.com/p/android/issues/detail?id=38369

    donde el último post, que es por un «Miembro del Proyecto», afirma:

    «Descendiente focusability se refiere a una vista de la capacidad para tomar el foco, como en el enfoque transversal utilizando un teclado, trackball, o el d-pad. No afecta a eventos de toque de diseño.

    Si usted necesita para bloquear eventos de toque de un descendiente de vista, considerar reemplazar onInterceptTouchEvent en una vista principal y devuelve true cuando el bloqueo de eventos de toque es deseado. Esto hará que el MotionEvents para ser enviados a la interceptación de los padres hasta el último puntero va para arriba.»

  5. 0

    Usted puede hacer esto:

        InputMethodManager imm = 
    (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

    Por favor refiérase a esta pregunta así:

    Cerca de/ocultar el Teclado para Android

    • Esto no funciona para el TimePicker. Lo he hecho antes con un EditText. Además, yo no sólo quiero una forma de ocultar el teclado, pero básicamente para hacer el EditTexts dentro de la TimePicker nunca tiene el foco. Yo sólo quiero que los valores se pueden cambiar usando los botones de más y menos, y no quiero que el usuario pueda hacer clic en el área donde son los números y tienen un cursor venir. He estado tratando de averiguar cómo obtener una referencia a los niños dentro de la TimePicker para hacer esto…pero no puedo averiguar cómo.
  6. 0

    Esto no no de trabajo, ya sea para EditText controles… Si pulsa & pulsada la tecla de Menú en un EditText en la que se hayan establecido InputType.TYPE_NULL y llamó immhideSoftInputFromWindow(...), el teclado de software todavía emergente, junto con el copiar/pegar del menú de opciones.

    • PS: esto fue en referencia al post anterior sobre el uso de InputtMethodManager, lo siento, me refería a usar el «feedback» botón !!

Dejar respuesta

Please enter your comment!
Please enter your name here