2017-09-29 2 views
0

je doute que je dois utiliser une liste des tableaux ci-dessous dans mon projet, ils sont ...Peupler Spinner d'un autre Spinner

Liste Restaurant Plats Plats Restaurant 1 Restaurant 2 Prix Restaurant 1 Prix Restaurant 2

Dans mon activité, j'ai mis deux Spinners un qui obtiendra les restaurants Array List et l'autre le je veux qu'il apparaisse les données de la liste Array quand je sélectionne le restaurant et à la fin je choisirais et setaria comme une vue de texte de la prix.

enter image description here

Juste pour avoir une idée de ce qui est peuplé à Spinner

<string-array name="restaurant"> 
    <item>McDonalds</item> 
    <item>KFC</item> 
</string-array> 

<string-array name="restaurant_McDonalds_Plate"> 
    <item>Combo Big Mac</item> 
    <item>Combo Deluxe Bacon</item> 
    <item>Combo Club House</item> 
</string-array> 

<string-array name="Restaurant_McDonalds_Plate_Price"> 
    <item>R$ 31,00</item> 
    <item>R$ 29,00</item> 
    <item>R$ 35,00</item> 
</string-array> 

<string-array name="Restaurant_KFC_Plate"> 
    <item>Combo Balde de 6 peças</item> 
    <item>Combo Balde de 9 peças</item> 
    <item>Combo Balde de 12 peças</item> 
</string-array> 

<string-array name="Restaurant_KFC_Plate_Price"> 
    <item>R$ 25,00</item> 
    <item>R$ 35,00</item> 
    <item>R$ 45,00</item> 
</string-array> 
+0

Donc, vous voulez peupler le deuxième fileur (assiette) basé sur le restaurant que vous choisissez dans le premier? –

Répondre

0

essayer ci-dessous le code, je l'ai expliqué et écrit .. il

final Spinner retaurant; 
    final Spinner plate; 

    final TextView txt_retaurant; 
    final TextView price; 

    retaurant.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

      String restaurantname = retaurant.getSelectedItem().toString(); 

      txt_retaurant.setText(restaurantname); 

      //if McDonalds, populates plate spinner with respective 
      if(position == 0){ 
       ArrayAdapter<String> adapter= new ArrayAdapter<String>(view.getContext(),android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.restaurant_McDonalds_Plate)); 
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       plate.setAdapter(adapter); 
      } 
      //if kfc, populates plate spinner with respective 
      if(position == 1){ 
       ArrayAdapter<String> adapter= new ArrayAdapter<String>(view.getContext(),android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Restaurant_KFC_Plate)); 
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       plate.setAdapter(adapter); 
      } 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 

    plate.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

      // if McDonalds selected , it gets respective price list of plate and sets the price list to textview according to selected value in plate spinner 
      if(retaurant.getSelectedItemPosition() == 0){ 
       List<String> myArrayList = Arrays.asList(getResources().getStringArray(R.array.Restaurant_McDonalds_Plate_Price)); 
       price.setText(myArrayList.get(position)); 
      } 
      // if kfc selected , it gets respective price list of plate and sets the price list to textview according to selected value in plate spinner 
      if(retaurant.getSelectedItemPosition() == 1){ 
       List<String> myArrayList = Arrays.asList(getResources().getStringArray(R.array.Restaurant_KFC_Plate_Price)); 
       price.setText(myArrayList.get(position)); 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    });