Cómo establecer ListView no se puede hacer clic

Tengo este ListView que sólo necesita mostrar datos.
Así que no quiero hacerla clicable.
Primero he intentado cambiar el listview XML a:

 <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:clickable="false" > 

Pero no funcionó.
Así que para resolver mi problema que establezca a través del código:

  list.setSelector(android.R.color.transparent); 

Pero no puedo creer que no hay mejor solución. ¿Alguna idea?

Aquí está, siguiendo el comentario:

Una forma de hacerlo es: ListView.setOnClickListener(null); O

Puedes añadir android:focusable="false" android:focusableInTouchMode="false" O

Otra forma en el android:listSelector="@android:color/transparent" diseño android:listSelector="@android:color/transparent"

Aclamaciones.

Simplemente anule isEnabled (posición) en su adaptador y devuelva false

 @Override public boolean isEnabled(int position) { return false; } 

Anule el siguiente método. Devuelve false para decir que todos los elementos no se pueden hacer clic.

  @override public boolean areAllItemsEnabled() { return false; } 

Y reemplaza por debajo del método para devolver qué elemento no se puede hacer clic

 public boolean isEnabled(int position) { if(position == your_item_pos) { return false; } return true; } 
 android:listSelector="@android:color/transparent" 

¡Cambia el color encendido al mismo que cuando no se hace clic! Así que aparece como si fuera texto llano … es un trabajo alrededor.

Simplemente copie este método en su clase de adaptador. Nada que hacer ………

 @Override public boolean isEnabled(int position) { return false; } 

Puede establecer cualquier condición para que algunos elementos seleccionados no puedan seleccionarse.

 @Override public boolean isEnabled(int position) { //Y for non clickable item if(data_list.get(position).equalsIgnoreCase("Y")) { return false; } return true; } 
 android:focusable="true" 

A cualquiera del elemento dentro de listview ahora listview no se puede hacer clic

Podrías usar

 yourListView.setOnItemClickListener(null); 

Camino fácil:

 listView.setSelector(android.R.color.transparent); 

Prueba este código

En Adapter.getView ()

 i.setOnClickListener( null ); i.setLongClickable( false ); i.setClickable( false ); 

Sólo tienes que configurar android: enabled = "false" para el listview y que haría el truco .. por qué innecesario mantener métodos sobresalientes.

De hecho, @override isEnabled () y setOnClickListener (null) setClickable (false) setLongClickable (false) No funcionan para mí. Lo resuelvo mediante override performItemClick

 @Override public boolean performItemClick(View view, int position, long id) { if(!clickAble){ return false; } return super.performItemClick(view,position,id); } 

Tengo este ListView que sólo necesita mostrar datos. Así que no quiero hacerla clicable.

He hecho esto en uno de mis proyectos, y la muestra funciona bien.

Básicamente, sólo necesita:

  • Un origen de datos (ArrayList, por ejemplo)
  • Un widget ListView
  • Un ArrayAdapter, con el fin de vincular el origen de datos con el ListView

MainActivity.java

 package com.sample.listview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // data source String[] arrayData = {"Debian", "Ubuntu", "Kali", "Mint"}; // ListView Widget from a Layout ListView listView = (ListView) findViewById(R.id.mainListView); // an ArrayAdapter (using a layout as model for displaying the array items) ArrayAdapter aa = new ArrayAdapter<String>(this, R.layout.main_list_item_layout, arrayData); // binding the ArrayAdapter with the ListView Widget listView.setAdapter(aa); } } 

Activity_main.xml
—> Asegúrese de que el Widget ListView esté usando wrap_content para layout_width y layout_height

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.sample.listview.MainActivity"> <ListView android:id="@+id/mainListView" android:layout_width="wrap_content" <---- HERE android:layout_height="wrap_content" <---- HERE /> </LinearLayout> 

Main_list_item_layout.xml

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainListItem" android:layout_width="match_parent" android:layout_height="match_parent" android:textColor="#ff0000" android:textSize="20sp" > </TextView> 

Eso es todo: un ListView no se puede hacer clic, solo presenta los datos en la pantalla.

  • GridView con selección múltiple no muestra el estado del elemento seleccionado (sólo estado presionado)
  • Botón de desactivación con selector de botones
  • Norma de arquitectura de Android MVP para cargar interfaz de usuario con clase Model que tiene recurso android
  • Lengüetas estilo Android SlidingTabs con esquinas redondas
  • Androide ColorStateList creado mediante programación y aplicado a TextColor
  • ? Android: attr / selectableItemBackground con otro fondo existente
  • Tema de un selector dibujable en pre-Lollipop
  • Selección android selectableItemBackground
  • 9-Patch en Selector muestra puntos negros
  • Android: ¿puede tener un efecto de rizado cuyo color de estado predeterminado es transparente?
  • Selector de lista de elementos GridView para varios elementos que no funcionan en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.