Evitar que el menú desplegable de hilanderos muestre
Estoy utilizando una ruleta cuyo adaptador se rellena dinámicamente.
- Cuando hay varios elementos, el comportamiento del hilandero es el estándar. En un clic, se muestra la lista desplegable, que permite al usuario seleccionar un elemento
- Cuando sólo hay un elemento, quiero evitar que el menú desplegable aparezca y capture el evento de clic para realizar una acción.
No puedo encontrar una solución para evitar el comportamiento predeterminado (es decir, mostrar el menú desplegable de un solo elemento en un clic). ¿Alguna idea sobre cómo hacer esto? Gracias
- ¿La mejor manera de mostrar un indicador de carga / avance?
- Android Spinner OnItemSelected no se llama con el mismo elemento
- Cómo establecer la selección de hilandero por el texto dentro de él
- Android: Necesidad de cambiar el color de fondo del spinner
- Android - ProgressBar setVisibility to GONE no funciona
- Establecer el color de fondo del elemento seleccionado en la navegación desplegable de Android
- Alternativa a la CLASE SPINNER ALTAMENTE FLAWED en Android
- Cómo puedo cambiar el 'pequeño triángulo' en la barra de acción NAVIGATION_MODE_LIST
- Android: Change Spinner Dropdown ver más
- Cambiar el color de fondo de la flecha giratoria
- Añade más espacio entre los elementos de Android Spinner sin estilo personalizado?
- Android agrega imagen de flecha a spinner
- Agregar OnItemSelectedListener a Spinner
Hm … intenta usar setClickable(fasle)
o setEnabled(false)
si sólo hay un elemento en spinner
.
Prueba esto
public class SpinnerActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.spinner1); List<String> list = new ArrayList<String>(); list.add("list 1"); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(dataAdapter); if (list.size() < 2) { spinner.setClickable(false); spinner.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { Toast.makeText(SpinnerActivity.this, "Catch it!", Toast.LENGTH_SHORT).show(); } return true; } }); } } }
Para evitar que el hilandero muestre la lista desplegable, solo devuelvo true en onTouch (…), así:
spinner.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { return true; } });
- ¿Cómo debo manejar la comunicación entre los hilos de la IA y el bucle del juego principal?
- Phonegap – ¿Cómo generar un archivo de imagen de cadena base64?