Cómo deshabilitar el clic en ListView en android?
Tengo un ListView que estoy poblando con valores de mi base de datos. Si la base de datos está vacía, estoy configurando el primer elemento de ListView en "Sin datos". Quiero desactivar hacer clic en este elemento. He utilizado ArrayAdapter. Intenté hacer areAllItemsEnabled, isEnabled falso, pero era inútil. Incluso si establezco el IsClickable de ListView y setEnabled a false, no sirve de nada. Y puse el código para el OnItemClickListener en la condición del otro, incluso eso no para el artículo de la lista de ser clickable. ¿Alguien tiene una solución alternativa? ¡Gracias!
- Android: FastScrolling SectionIndexer getSections () se llama sólo una vez
- Android - autoLink
- Ancho del pie de lista
- Resalte el efecto mientras presiona el elemento en el adaptador ListView personalizado
- Android: ListFragment refresh utilizando notifyDataSetChanged () con el adaptador personalizado no funciona
- ¿Cómo crear un spinner con título en él?
- Un montón de recolección de basura en un listview
- SimpleCursorAdapter con ImageView y TextView
- Custom ListView no resalta ListViewItem al hacer clic
- Pasar una lista de una actividad a otra
- ListView con CustomCursorAdapter desplazamiento no es suave
- Android listview mensaje vacío con encabezado
- ¿Cómo hacer que el desplazamiento de Listview sea más lento?
En su función personalizada ArrayAdapter isEnabled para devolver false:
@Override public boolean isEnabled(int position) { return false; }
Siempre funciona para mí.
Todo lo más fácil! List.setEnabled (false)
Puede establecer la Vista vacía como se muestra y se manejará automáticamente:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="8dp" android:paddingRight="8dp"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00FF00" android:layout_weight="1" android:drawSelectorOnTop="false"/> <TextView android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0000" android:text="No data"/> </LinearLayout>
Cree el adaptador para esa lista, y allí substituya este método
public boolean isEnabled(int position);
A continuación, devolver false
cuando desee desactivar el clic
Tal vez usted podría usar una instrucción if para comprobar el contenido de la entrada listview en el OnClick, si contiene 'No hay datos' no hacer nada, sino hacer lo habitual
Me gustó esto de acuerdo a mi requisito espero que pueda ayudarle a algunos cómo
@Override public boolean isEnabled(int position) { if(data.get(position).isClickable==false) { return false; } return super.isEnabled(position); }
- Cómo implementar una devolución de llamada asíncrona utilizando la biblioteca de red de Retrofit de Square
- ¿Cómo configurar VPN de forma programática?