para - manual de programacion android pdf
¿Cómo deshabilitar hacer clic en ListView en Android? (6)
En su Custom ArrayAdapter use la función isEnabled para devolver falso:
@Override
public boolean isEnabled(int position) {
return false;
}
siempre funciona para mi
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 como "Sin datos". Quiero desactivar haciendo clic en este elemento. He usado ArrayAdapter. Intenté hacer areAllItemsEnabled, isEnabled false, pero no sirvió. Incluso si configuro ListView''s isClickable y setEnabled en false, no sirve de nada. Y puse el código para OnItemClickListener en la condición else, incluso eso no impide que se pueda hacer clic en el elemento de la lista. ¿Alguien tiene una solución alternativa? ¡Gracias!
Me gustó esto de acuerdo con mi requerimiento espero que pueda ayudarlo de alguna manera
@Override
public boolean isEnabled(int position) {
if(data.get(position).isClickable==false)
{
return false;
}
return super.isEnabled(position);
}
Puede configurar 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>
Quizás podría usar una instrucción if para verificar el contenido de la entrada de la vista de lista en OnClick, si contiene ''Sin datos'' no hacer nada, sino hacer lo usual
crear Adapter para esa lista, y anular este método
public boolean isEnabled(int position);
luego devuelve false
cuando quiere deshabilitar el clic
todo más fácil! list.setEnabled (false)