2010-07-02 34 views
8

Tengo una vista de lista que contiene textviews como sus elementos.establecer el foco en cualquier elemento de listview en android

  1. Ahora quiero el primer elemento de la lista que se desea enfocar automáticamente cuando inicio la aplicación
  2. ¿Cómo puedo establecer el foco en cualquier elemento de la lista cuando hago clic en el otro punto de vista, por ejemplo, una ¿botón?

Respuesta

4

ListView tiene un método setSelected que toma el índice del elemento en la lista.

+2

Hola pero listitem seleccionada es igual como foco ed listitem? – sarvesh

+0

La selección de AFAIK no es lo mismo que el enfoque. –

+0

Hola Robby, ¿qué significa 'setItemsCanFocus (boolean)'? –

1

Supongo que estaba en la misma situación. Quería poder controlar el foco de la vista de lista programáticamente con botones.

Una solución es tratar con el setFocusableInTouchMode, pero nunca he logrado que funcione.

La otra solución es olvidarse del enfoque y usar una vista de lista seleccionable. En primer lugar fijar su vista de lista a "modo de selección única" en XML o en Java: Mylistview.setChoiceMode(1)

entonces usted será capaz de comprobar cualquier elemento que desee con Mylistview.setItemChecked(position, true)

Así que cuando el almuerzo la aplicación (OnCreate), el uso Mylistview.setItemChecked(0, true) para verificar su primer artículo.

Entonces, si usted quiere que su botón para seleccionar la siguiente opción para exemple, utilice:

Mylistview.setItemChecked(Mylistview.getCheckedItemPosition() + 1, true) 

Puede especificar el aspecto cuando el elemento está bloqueado o no y hay diferentes listviews chekable pre-construidos.

Si desea más explicaciones, véase mi post

7

Ajuste de selección y ajuste de enfoque son dos cosas diferentes. Si solo quiere configurarSelección de algún elemento, puede usar el siguiente código.

mListView.setSelection(position); 

Pero esto definitivamente no significa que el Listview es focused.For centrándose usted tiene que utilizar

mListView.requestFocus(); 

Para cambiar el foco en clic de un botón, se puede colocar el código en onClick() del botón.

2

para mí el problema fue resuelto por

listView.setItemsCanFocus(true); 
1
  1. Su ListView debe ser como este:

    <ListView 
        android:id="@+id/my_list" 
        android:layout_width="wrap_content" 
        android:layout_height="200dp" 
        android:layout_margin="10dp" 
        android:choiceMode="none" 
        android:focusable="true" 
        android:fadeScrollbars="false"> 
        <requestFocus /> 
    </ListView> 
    
  2. mListView.setSelection(3); //or any other number

Cuestiones relacionadas