Autore Topic: Come far interagire 2 spinner  (Letto 1097 volte)

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Come far interagire 2 spinner
« il: 17 Gennaio 2011, 13:06:20 CET »
0
Salve a tutti. Sono nuovo del forum e colgo l'occasione per salutarvi tutti. Vengo al dunque. Vorrei realizzare 2 spinner che, quando selezione un elemento nel primo spinner, mi carica gli item di un certo file .xml nel secondo spinner. Potreste dirmi come fare?

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Come far interagire 2 spinner
« Risposta #1 il: 17 Gennaio 2011, 18:08:15 CET »
0
Nessuno può aiutarmi?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Come far interagire 2 spinner
« Risposta #2 il: 17 Gennaio 2011, 18:13:56 CET »
0
Non l'ho provato, ma credo che basti settare nel setOnItemSelectedListener() del primo spinner l'adapter del secondo, opportunamente inizializzato in base alla scelta.

Facci sapere se funziona :P
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Come far interagire 2 spinner
« Risposta #3 il: 17 Gennaio 2011, 18:18:39 CET »
0
Ciao JD. Magari posso postarti il codice così gli dai uno sguardo? Sono alle prime armi!!!

Codice (Java): [Seleziona]
public class RicercaModello extends Activity {
       
        TextView ricercamodellovespalabel;
        TextView siglatelaiolabel;
        TextView numerotelaiolabel;
        TextView cilindratalabel;
        Spinner cilindrataspinner;
        Spinner siglatelaiospinner;
        EditText numerotelaiotext;
       
       
        public class MyOnItemSelectedListener implements OnItemSelectedListener {

            public void onItemSelected(AdapterView<?> parent,
                View view, int pos, long id) {
              Toast.makeText(parent.getContext(), "The telaio is " +
                  parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
            }

            public void onNothingSelected(AdapterView parent) {
              // Do nothing.
            }
        }
       
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ricerca_modello);
       
        ricercamodellovespalabel = (TextView) this.findViewById(R.id.ricercamodellovespalabel);
        cilindratalabel = (TextView) this.findViewById(R.id.siglatelaiolabel);
        siglatelaiolabel = (TextView) this.findViewById(R.id.siglatelaiolabel);
        numerotelaiolabel = (TextView) this.findViewById(R.id.numerotelaiolabel);
        cilindrataspinner = (Spinner) this.findViewById(R.id.cilindrataspinner);
        siglatelaiospinner = (Spinner) this.findViewById(R.id.siglatelaiospinner);
       
        ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(
                this, R.array.cilindrate_array, android.R.layout.simple_spinner_item);
        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        cilindrataspinner.setAdapter(adapter1);
        cilindrataspinner.setPrompt("Seleziona...");
        cilindrataspinner.setOnItemSelectedListener(
                new  AdapterView.OnItemSelectedListener() {
                    @Override
                            public void onItemSelected(AdapterView<?> arg0,
                                            View arg1, int arg2, long arg3) {
                       
                       
                            siglatelaiospinner = (Spinner) findViewById(R.id.siglatelaiospinner);
                            ArrayAdapter<CharSequence> adapter2 = null;
                           
                            switch (arg2) {
                                                        case 1:
                                                                adapter2 = ArrayAdapter.createFromResource(
                                                getApplicationContext(), R.array.telai50_array, android.R.layout.simple_spinner_item);
                                                                break;
                                                        case 2:
                                                                adapter2 = ArrayAdapter.createFromResource(
                                                getApplicationContext(), R.array.telai90_array, android.R.layout.simple_spinner_item);
                                                                break;
                                                        case 3:
                                                                adapter2 = ArrayAdapter.createFromResource(
                                                getApplicationContext(), R.array.telai98_array, android.R.layout.simple_spinner_item);
                                                                break;
                                                        case 4:
                                                                adapter2 = ArrayAdapter.createFromResource(
                                                getApplicationContext(), R.array.telai125_array, android.R.layout.simple_spinner_item);
                                                                break;
                                                        case 5:
                                                                adapter2 = ArrayAdapter.createFromResource(
                                                getApplicationContext(), R.array.telai150200_array, android.R.layout.simple_spinner_item);
                                                                break;
                                                        default:
                                                                break;
                                                        }
                                                       
                       
                       
                        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        siglatelaiospinner.setAdapter(adapter2);
                        siglatelaiospinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
                        siglatelaiospinner.setPrompt("Seleziona...");
                       
                            }
                            @Override
                            public void onNothingSelected(AdapterView<?> arg0) {
                                    // TODO Auto-generated method stub
                            }
                    //add some code here
                }
            );
       
       
        numerotelaiotext = (EditText) this.findViewById(R.id.numerotelaiotext);
        //numerotelaiotext.setText("");
    }
   
    public void myClickHandler1(View view) {
        Context context = getBaseContext();
        int selected = siglatelaiospinner.getSelectedItemPosition();
        String sigla = siglatelaiospinner.getItemAtPosition(selected).toString();
        String numero = numerotelaiotext.getText().toString();
        Intent myIntent = new Intent(context, RicercaNumero.class);
        String pkg=getPackageName();
        myIntent.putExtra(pkg+".sigla", sigla);
        myIntent.putExtra(pkg+".numero", numero);
        startActivityForResult(myIntent, 0);
    }
   
    public void myClickHandler2(View view) {
          Context context = getBaseContext();
          Intent myIntent = new Intent(context, MainApp.class);
      startActivityForResult(myIntent, 0);
    }
}

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Come far interagire 2 spinner
« Risposta #4 il: 17 Gennaio 2011, 18:23:17 CET »
0
non ti funziona il tuo codice?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Come far interagire 2 spinner
« Risposta #5 il: 17 Gennaio 2011, 18:27:24 CET »
0
purtroppo no!

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Come far interagire 2 spinner
« Risposta #6 il: 18 Gennaio 2011, 19:58:04 CET »
0
???  Non so proprio cosa modificare!!!

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Come far interagire 2 spinner
« Risposta #7 il: 18 Gennaio 2011, 21:20:31 CET »
0
spiega meglio cosa non funziona. va in force close ? non aggiorna il secondo spinner?
prova a debuggare con dei Log.v

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Come far interagire 2 spinner
« Risposta #8 il: 19 Gennaio 2011, 10:03:20 CET »
0
Ciao Qlimax. Purtroppo il debug non lo so usare. Ad ogni modo quando avvio l'applicazione, mi viene caricata un'activity principale nella quale, cliccando su un bottone, mi porta nell'activity che vi ho riportato qui nel forum. Quando clicco su questo bottone và in force close. Se invece tolgo l'azione associata allo spinner cilindrataspinner.setOnItemSelectedListener(...  l'applicazione non và in forse close, però ovviamnete non mi dà la funzionalità che io sto ricercando, cioè la comunicazione tra i 2 spinner.

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Come far interagire 2 spinner
« Risposta #9 il: 19 Gennaio 2011, 11:44:16 CET »
0
Ragazzi ho  risolto, il problema stava nello switch: i case devono partire da 0 e non da 1!!!

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Come far interagire 2 spinner
« Risposta #10 il: 19 Gennaio 2011, 15:40:24 CET »
0
Ragazzi ho  risolto, il problema stava nello switch: i case devono partire da 0 e non da 1!!!
I case non devono, per forza, partire da 0. É necessario nel tuo caso poiché l'argomento dello switch puó assumere anche questo valore.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline irritato

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Come far interagire 2 spinner
« Risposta #11 il: 19 Gennaio 2011, 15:51:07 CET »
0
Si...scusa, non sono molto corretto nella risposta...volevo intendere che in questo caso specifico la position dell'item parte da zero.