Autore Topic: custom spinner  (Letto 471 volte)

Offline Ale

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
custom spinner
« il: 05 Settembre 2014, 19:11:11 CEST »
0
Salve a tutti Andevs!
Quest'oggi devo chiedervi aiuto per un spinner personalizzato (vd. codice seguente). In pratica, avrei due spinner che si chiamano "s1" e "s2".  Con "s2" non ho problemi; è "s1" che non so come attribuirgli un layout da me definito ("simple_spinner_dropdown_item" e "simple_spinner_dropdown_item" li ho riscritti a modo mio nella cartella res/layout).

Come posso approcciare la questione?

Codice (Java): [Seleziona]
...........
public class MainActivity extends Activity implements OnItemSelectedListener {

        private Spinner s1;
        private Spinner s2;
        ................
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
            s1 = (Spinner)findViewById(R.id.campoDepth);
            s2 = (Spinner)findViewById(R.id.campoMinutes);
            s1.setOnItemSelectedListener(this);
        }

       
           @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                   String sp1= String.valueOf(s1.getSelectedItem());

                   if(sp1.contentEquals("10 f - 3 m")) {
                    List<String> list = new ArrayList<String>();
                    list.add("60");
                    list.add("120");
                    list.add("210");
                    list.add("300");
                    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.simple_spinner_dropdown_item, list);
                    dataAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
                    dataAdapter.notifyDataSetChanged();
                    s2.setAdapter(dataAdapter);
                }
...........
« Ultima modifica: 06 Settembre 2014, 11:30:51 CEST da Ale »

Offline BlackJad

  • Utente junior
  • **
  • Post: 59
  • Respect: +6
    • Google+
    • michele-ziparo/4/825/a99/
    • blackjad82
    • Mostra profilo
    • Datawit Systems
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    Michele Ziparo
  • Sistema operativo:
    Windows 8.1
Re:custom spinner
« Risposta #1 il: 06 Settembre 2014, 14:29:35 CEST »
0
Potresti implementare un adapter personalizzato per il tuo Spinner

Codice (Java): [Seleziona]
public class SpinnerAdapter extends BaseAdapter implements SpinnerAdapter
In questa classe hai a disposizione due metodi, di cui puoi fare override, ed ottenere il layout personalizzato sia per lo spinner chiuso, sia per quando è aperto.

Codice (Java): [Seleziona]
@Override
public View getView(int position, View convertView, ViewGroup parent)

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)