Autore Topic: Due Spinner  (Letto 623 volte)

Offline Michele77

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    windows
Due Spinner
« il: 25 Luglio 2013, 11:36:30 CEST »
0
Ciao Ragazzi,
sto cercando di imparare a programmare per Android quindi sono alle prime armi...
volevo ,cosi per imparare, creare una Activity con DUE SPINNER (Regione, province).
Considerando che sono alle prime armi non vorrei usare SqLite e mi chiedevo se fosse possibile utilizzare solo codice.
In pratica lo scopo dell'esercizio e' :
seleziono dal primo spinner la Regione e il secondo spinner dovra' popolarsi con le relative province.
E' possibile?
Avete qualche esempio ?
Grazie a tutti


Post unito: 26 Luglio 2013, 13:58:17 CEST
Nessuno puo aiutarmi?
« Ultima modifica: 26 Luglio 2013, 13:58:17 CEST da Michele77, Reason: Merged DoublePost »

Offline Michele77

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    windows
Re:Due Spinner
« Risposta #1 il: 27 Luglio 2013, 11:40:47 CEST »
0
...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Due Spinner
« Risposta #2 il: 27 Luglio 2013, 12:36:27 CEST »
0
Se non vuoi usare un DB (che sarebbe la scelta migliore per questo esercizio) devi crearti una serie di array (uno con tutte le regioni e uno per ciascuna regione), come spiegato in questo esempio: Spinners | Android Developers


e settare allo spinner delle provincie l'array adatto rispetto alla regione selezionata.

Offline Michele77

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    windows
Re:Due Spinner
« Risposta #3 il: 27 Luglio 2013, 14:48:36 CEST »
0
Allora, ricapitoliamo:
nel string.xml inserisco le regioni:
Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Test Regioni/province</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
       
       <string name="scegli_reg">Seleziona Regione</string>
        <string-array name="Regioni">
<item>Molise</item>
<item>Abruzzo</item>
<item>Puglia</item>
<item>ecc...</item>

    </string-array>
</resources>

nell'activity inserisco:
Codice (Java): [Seleziona]
public class MiaActivity extends Activity  {

private Spinner spinner1, spinner2;
        private Button btnSubmit;

        @Override
           public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_ita);
                addItemsOnSpinner2();
                addListenerOnButton();
                addListenerOnSpinnerItemSelection();

        }

        //add items into spinner dynamically
        public void addItemsOnSpinner2() {
       
               
               
                spinner2 = (Spinner) findViewById(R.id.spinner2);
                List<String> list = new ArrayList<String>();
               
                list.add("Campobasso");
                list.add("Isernia");
                list.add("Bari");
                list.add("Foggia");
                list.add("Lecce");
                list.add("ecc");               
                             list.add("Pescara");
                list.add("Teramo");
                     list.add("Chieti");
                      list.add("L'Aquila");
               
               
                ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
                dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spinner2.setAdapter(dataAdapter);
        }

        public void addListenerOnSpinnerItemSelection(){
               
                spinner1 = (Spinner) findViewById(R.id.spinner1);
       
        }
       
        //get the selected dropdown list value
        public void addListenerOnButton() {

                spinner1 = (Spinner) findViewById(R.id.spinner1);
                spinner2 = (Spinner) findViewById(R.id.spinner2);
               
                btnSubmit = (Button) findViewById(R.id.btnSubmit);

                btnSubmit.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {

                                Toast.makeText(ActivityIta.this,
                                                "Hai selezionato : " +
                                                "\nRegione : " + String.valueOf(spinner1.getSelectedItem()) +
                                                "\nProvincia : " + String.valueOf(spinner2.getSelectedItem()),
                                                Toast.LENGTH_SHORT).show();
                        }

                });

        }}

Ma e' qui, nell'activity, che mi sono incartato ...
Se seleziono dal primo spinner Molise, vorrei che il secondo spinner mostrasse solo Campobasso,Isernia. e cosi per le altre reginoni
« Ultima modifica: 27 Luglio 2013, 14:51:50 CEST da Michele77 »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Due Spinner
« Risposta #4 il: 27 Luglio 2013, 15:03:12 CEST »
0
Devi creare anche uno string-array per ciascuna regione, dove inserisci tutte le provincie di quella regione.
Poi lo assegni dinamicamente in base alla regione selezionata nel primo spinner.

Offline Michele77

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    windows
Re:Due Spinner
« Risposta #5 il: 27 Luglio 2013, 15:09:39 CEST »
0
Cosi per la string array, giusto?

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Test Regioni/province</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
       
       <string name="scegli_reg">Seleziona Regione</string>
        <string-array name="Regioni">
<item>Molise</item>
<item>Abruzzo</item>
<item>Puglia</item>
<item>ecc...</item>



        <string-array name="Molise">
<item>Campobasso</item>
<item>Isernia</item>


        <string-array name="Puglia">
<item>Bari</item>
<item>Foggia</item>
<item>Lecce</item>
<item>Brindisi</item>

    </string-array>
</resources>

Ma poi come lo assegno dinamicamente in base alla regione selezionata nel primo spinner ?
Grazie ancora
 






Post unito: 29 Luglio 2013, 10:54:02 CEST
Via prego mi aiutate a risolvere questo esercizio?
« Ultima modifica: 29 Luglio 2013, 10:54:02 CEST da Michele77, Reason: Merged DoublePost »

Offline Michele77

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    windows
Re:Due Spinner
« Risposta #6 il: 30 Luglio 2013, 22:13:20 CEST »
0
Fatto risolto, grazie a tutti lo stesso.
Appena finisco l' esercizio posto la soluzione.