In Android 1.6, dopo aver toccato uno spinner (menu a discesa), i pulsanti di opzione vengono visualizzati accanto alle opzioni di selezione. Come rimuovo quei pulsanti di opzione in modo che rimanga solo il testo dell'opzione?Spinner Android - Come rimuovere i pulsanti di opzione?
risposta
Solo per rimuovere i pulsanti di opzione, non è necessaria la propria classe di adattatori.
Creare un dropdown_item.xml nel layout
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee" />
quindi effettuare la seguente chiamata nel codice.
arrayAdapter.setDropDownViewResource(R.layout.dropdown_item);
L'elemento di selezione a discesa di selezione predefinita è CheckedTextView con il pulsante di opzione. Qui lo sostituisci con TextView.
Se si desidera eliminare i pulsanti di opzione nell'elenco di selezione, è necessario fornire il proprio layout per riga.
Date un'occhiata al seguente esempio:
package com.ramps;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
public class MySpinner extends Activity {
//data that will be used as a spinner options
private static String data[] = {"one", "two", "three"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//main.xml file contains spinner
setContentView(R.layout.main);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
//create your own adapter
MySpinnerAdapter adapter = new MySpinnerAdapter(this,R.layout.custom_spinner_row,R.id.text, data);
//set your custom adapter
spinner.setAdapter(adapter);
}
private class MySpinnerAdapter extends ArrayAdapter{
public MySpinnerAdapter(Context context, int resource,
int textViewResourceId, String[] objects) {
super(context, resource, textViewResourceId, objects);
}
}
}
Il layout personalizzato per fila Spinner è solo un semplice LinearLayout con un elemento TextView quale ID è "text" (android: id = "@ + id/text ")
Questo è solo un semplice esempio. Se hai bisogno di un layout più elaborato rispetto a TextView, probabilmente dovrai sovrascrivere il metodo getView() di MySpinnerAdapter.
È possibile utilizzare il layout di Android
android.R.layout.simple_spinner_item
invece di
android.R.layout.simple_spinner_dropdown_item
ma vi consiglio @kimkunjj risposta, che vi darà il controllo del layout.
"android.R.layout.simple_spinner_item" fa il lavoro,
di programmazione che è:
modeSpinner=new Spinner(layout.getContext());
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(layout.getContext(),
android.R.layout.simple_spinner_item, Arrays.asList(modes));
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
Il modo "pulito" di fare questo (è sufficiente rimuovere il segno di spunta e non tocco anythinbg altro tra cui lo stile del testo, dimensione elemento ecc) è quello di creare adattatore personalizzato (come nelle risposte di cui sopra):
public class SimpleSpinnerArrayAdapter extends ArrayAdapter<String> {
public SimpleSpinnerArrayAdapter(Context context, String[] data) {
super(context, android.R.layout.simple_spinner_item, data);
this.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
public SimpleSpinnerArrayAdapter(Context context, List<String> data) {
super(context, android.R.layout.simple_spinner_item, data);
this.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
/**
* Returns default dropdown view with removed checkbox
*/
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
if (view != null && view instanceof CheckedTextView) {
((CheckedTextView) view).setCheckMarkDrawable(null);
}
return view;
}
}
si prega di notare la getDropDownView()
metodo che restituisce la vista per l'elemento dell'elenco a discesa. È possibile utilizzare qualsiasi vista personalizzata qui, ma se si desidera attenersi alla visualizzazione predefinita si dovrebbe probabilmente utilizzare il codice precedente.
Se è stata inclusa la libreria di supporto di Android versione 18 o successiva nel progetto, è possibile sostituire l'ID risorsa simple_spinner_dropdown_item
con support_simple_spinner_dropdown_item
. Ciò rimuoverà il pulsante di opzione.
uso simple_dropdown_item_1line
- 1. Come distribuire uniformemente i pulsanti di opzione su Android?
- 2. Android: posizionare i pulsanti di opzione in orizzontale
- 3. Come rimuovere i pulsanti di zoom sulla visualizzazione Web Android?
- 4. dynamic alertdialog con i pulsanti di opzione
- 5. cambiamento quando selezionare i pulsanti di opzione
- 6. Convention in Caliburn.Micro per i pulsanti di opzione
- 7. Come utilizzare i pulsanti di opzione in React?
- 8. Come associare le etichette con i pulsanti di opzione
- 9. Come ottenere tutti i pulsanti di opzione incontrollati
- 10. Come rimuovere il valore predefinito in spinner android?
- 11. react-bootstrap ButtonGroup come pulsanti di opzione
- 12. Rimuovere lo spazio tra i pulsanti in LinearLayout (Android)
- 13. Finestra di dialogo dell'interfaccia utente jQuery - impossibile rimuovere i pulsanti
- 14. Prevenire avvolgimento di testo sotto i pulsanti di opzione
- 15. Come creare un sottomenu con i pulsanti di opzione in Android?
- 16. Ottiene i pulsanti di opzione selezionati di una determinata classe
- 17. Barra dei pulsanti degli oggetti dell'interfaccia utente JQuery che funziona come i pulsanti di opzione
- 18. Uso dell'associazione checkedValue con i pulsanti di opzione
- 19. Tabulazione tra i pulsanti di opzione in VB6
- 20. ASP.NET MVC disabilita i pulsanti di opzione con sintassi Razor
- 21. Perché i pulsanti di opzione non possono essere "readonly"?
- 22. Pulsanti di opzione + elementi di array
- 23. pulsanti di opzione javascript controllare automaticamente
- 24. Quali sono le alternative per i pulsanti di opzione?
- 25. Firefox che ricorda i pulsanti di opzione in modo errato
- 26. entrambi i pulsanti di opzione può essere selezionata
- 27. Come rimuovere la linea di separazione nello spinner?
- 28. Disabilitazione dei pulsanti di opzione con jQuery
- 29. pallone modulo maniglia con pulsanti di opzione
- 30. Raggruppamento pulsanti di opzione in Zend Framework
Bello e semplice! – Bruiser
È 'android: id =" @ android: id/text1 "' opzionale? – cprcrack