2011-05-23 6 views
0

J'ai défini 2 filateurs:Android Spinner

<Spinner android:layout_width="fill_parent" android:layout_marginRight="10dp" android:layout_height="wrap_content" android:id="@+id/spinnerOd" android:layout_marginLeft="10dp" android:layout_below="@+id/OD"></Spinner> 
<Spinner android:layout_below="@+id/DO" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/DO" android:layout_alignRight="@+id/DO" android:id="@+id/spinnerDo"></Spinner> 

A un code pour remplir les Spinners avec les mêmes données (Ils sont utilisés pour sélectionner la plage de dates et les données sont les mêmes) ...

Spinner sOd = (Spinner)findViewById(R.id.spinnerOd); 
    Spinner sDo = (Spinner)findViewById(R.id.spinnerDo); 
    final sOdDATA items[] = new sOdDATA[9]; 

     long Today = System.currentTimeMillis(); 
     for (int i = 0; i < 9; i++) { 
      long makeDate = Today + ((i - 1)*(24*60*60*1000)); 
      SimpleDateFormat thisDateFormater = new SimpleDateFormat("dd.MM.yyyy"); 
      SimpleDateFormat dayFormater = new SimpleDateFormat("E"); 

      String SloDay = ""; 
      if(thisDateFormater.format(makeDate).equals(thisDateFormater.format(Today))) 
      { 
       SloDay = "Danes"; 
      } 
      else 
      { 
       if(thisDateFormater.format(makeDate).equals(thisDateFormater.format(Today - ((24*60*60*1000))))) 
       { 
        SloDay = "Včeraj"; 
       } 
       else 
       { 
        if(thisDateFormater.format(makeDate).equals(thisDateFormater.format(Today + ((24*60*60*1000))))) 
        { 
         SloDay = "Jutri"; 
        } 
        else 
        { 
         SloDay = returnSLODayName(dayFormater.format(makeDate)); 
        } 
       } 
      } 


      thisDateFormater.format(makeDate); 
      items[i] = new sOdDATA(SloDay + ", " + thisDateFormater.format(makeDate) ,thisDateFormater.format(makeDate).toString()); 
     } 
     ArrayAdapter<sOdDATA> adapter = 
      new ArrayAdapter<sOdDATA>( 
       this, 
       android.R.layout.simple_spinner_item, 
       items); 
     adapter.setDropDownViewResource(
      android.R.layout.simple_spinner_dropdown_item); 

     sOd.setAdapter(adapter); 
     sOd.setOnItemSelectedListener(new OnItemSelectedListener() { 
      public void onItemSelected(AdapterView<?> parent, View view, 
         int position, 
         long id) { 
        sOdDATA d = items[position]; 

       } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 

    ArrayAdapter<sOdDATA> adapterDo = 
     new ArrayAdapter<sOdDATA>( 
      this, 
      android.R.layout.simple_spinner_item, 
      items); 
    adapter.setDropDownViewResource(
     android.R.layout.simple_spinner_dropdown_item); 

    sDo.setAdapter(adapterDo); 
    sDo.setOnItemSelectedListener(new OnItemSelectedListener() { 
     public void onItemSelected(AdapterView<?> parent, View view, 
        int position, 
        long id) { 
       sOdDATA d = items[position]; 

      } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

Et mon résultat est le suivant:

Spinner 1:

Spinner 1

Spinner 2:

Spinner 2

Quel est le problème avec Spinner 2?

+0

essayer de donner largeur fill_parent dans le fichier xml pour la deuxième spinner – Lavanya

+0

toujours le même ... est-il possible que cela se produise parce que j'utilise 2 filateurs avec les mêmes définitions? –

+0

@ M.V. S'il vous plaît regardez ce numéro: http://stackoverflow.com/questions/21526982/how-to-create-spinner-to-show-current-and-next-30-dates – Sun

Répondre

1

Vous avez manqué setDropDownResource() ... pour le second ....

+0

Demm :) quelle erreur stupide ... Je cherchais sur le web s'il y avait un problème en définissant 2 mêmes fileurs ... Merci l'homme! –

+0

ça arrive mate ... faites attention la prochaine fois .. – ngesh