2017-04-01 3 views
0

Ich habe zwei Spinner, wird die Information auf dem zweiten Spinner auf der Grundlage der ersten Spinner Auswahl Beispiel SPINNER 1 PROTEIN MILCH OBST IF SPINNER 1 mit PROTEIN SETS dann EGG SPINNER 2 CHICKEN IF SPINNER 1 mit OBST SET dann SPINNER 2 APPLE ORANGESpinner Wert ist nicht für die zweiten Spinner erhält onStart

letzter Wert ausgewählt SPINNER 2 ORANGE

Jetzt möchte ich die letzten Werte der SPINNER1 und SPINNER2 ausgewählt erhalten, ich SharedPreferences verwende dies zu erreichen, , es funktioniert wie erwartet für SPINNER 1 FRUITS Position 2 jedoch für SPINNER2 es stellt nicht den letzten Wert ausgewählt, obwohl die Position 1 richtige Position ist, wenn es onStart(); genannt wird, den ersten Wert auswählt, der auf dem Array APPLE ist

Jede Hilfe würde geschätzt

Dank

public class TEST extends AppCompatActivity implements View.OnTouchListener { 

    SharedPreferences sharedPrefStoreInfo, sharedPrefGetInfo; 

    public String keyRow1, getBackInformationRow1; 

    String concatenateInfoRow1, currentDateString, concatenateInfoTotals, getBackInformationTotals, 
      getBackInformationParseTotals[], 

      getBackInformationParseRow1[] 

    ; 

    // declare adaptors to bind with spinners 
    ArrayAdapter<String> spinnerFoodCategoryRow1Adapter; 

    // declare the references for the UI elements 
    public static Spinner spinnerFoodCategoryRow1, 

       spinnerFoodNameRow1,; 

    private String[] oilsFoodInformation, fruitsFoodInformation, foodCategoryInformation; 

    TextView day, date, textViewProteinRow1, textViewCarbsRow1, textViewFatRow1, textViewCaloriesRow1, 

      textViewDailyTotalProtein, textViewDailyTotalCarbs, textViewDailyTotalFat, textViewDailyTotalCalories 

    ; 

    EditText editRow1; 

    String textInputRow1, textInputRow1ResultProtein, textInputRow1ResultCarbs, textInputRow1ResultFat, 
      textInputRow1ResultCalories, 

      dailyTotalProtein, dailyTotalCarbs, dailyTotalFat, dailyTotalCalories 

    ; 

    int gramsEditTextInputParseRow1; 

    double resultIntProteinRow1, resultIntCaloriesRow1, resultIntCarbsRow1, resultIntFatRow1,; 

    double proteinInfoRule3Row1, carbsInfoRule3Row1, fatInfoRule3Row1, caloriesInfoRule3Row1,; 

    public String foodNameTempRow1,; 

    double canolaProtein = 0; 
    double canolaCarbs = 0; 
    double canolaFat = 1; 
    double canolaCalories = 8.84; 
    double coconutOilProtein = 0; 
    double coconutOilCarbs = 0; 
    double coconutOilFat = 1; 
    double coconutOilCalories = 8.62; 
    double cornProtein = 0; 
    double cornCarbs = 0; 
    double cornFat = 1; 
    double cornCalories = 9; 
    double applesProtein = 0; 
    double applesCarbs = 0; 
    double applesFat = 0; 
    double applesCalories = 0; 
    double apricotsProtein = 0; 
    double apricotsCarbs = 0; 
    double apricotsFat = 0; 
    double apricotsCalories = 0; 
    double bananasProtein = 0; 
    double bananasCarbs = 0; 
    double bananasFat = 0; 
    double bananasCalories = 0; 

    @Override 
     public void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 
      setContentView(R.layout.food_tracker_layout); - 
      editRow1 = (EditText) findViewById(R.id.editRow1); 


      textViewProteinRow1 = (TextView) findViewById(R.id.textViewProteinR1); 
      textViewCarbsRow1 = (TextView) findViewById(R.id.textViewCarbsR1); 
      textViewFatRow1 = (TextView) findViewById(R.id.textViewFatR1); 
      textViewCaloriesRow1 = (TextView) findViewById(R.id.textViewCaloriesR1); 

      spinnerFoodCategoryRow1 = (Spinner) findViewById(R.id.spinner1R1); 
      spinnerFoodNameRow1 = (Spinner) findViewById(R.id.spinner2R1); 

      initializeSpinnerFoodCategoryAdapters(); 

      // CHANGE THE FONT SIZE OF SPINNER FOOD CATEGORY 
      spinnerFoodCategoryRow1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
        // Change the selected item's text color 
        ((TextView) view).setTextColor(Color.BLACK); 
        ((TextView) view).setTextSize(12); 

        getSelectedFoodCategoryRow1(); // ** 

        // THIS IS TO CHANGE THE FONT SIZE OF SPINNER FOOD NAME 
        spinnerFoodNameRow1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

         @Override 
         public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
          // Change the selected item's text color 
          ((TextView) view).setTextColor(Color.BLACK); 
          ((TextView) view).setTextSize(10); 

          getSelectedFoodNameRow1(); 

         } 

         @Override 
         public void onNothingSelected(AdapterView<?> parent) { 
         } 
        });// end 
             } // end 

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


     }// End Main 

    public void initializeSpinnerFoodCategoryAdapters() { 

     Resources res = getResources(); 

     spinnerFoodCategoryRow1Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, 
       res.getStringArray(R.array.SpinnerArrayInfoFoodCategory)); 
     spinnerFoodCategoryRow1.setAdapter(spinnerFoodCategoryRow1Adapter); 

     spinnerFoodCategoryRow2Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, 
       res.getStringArray(R.array.SpinnerArrayInfoFoodCategory)); 
     spinnerFoodCategoryRow2.setAdapter(spinnerFoodCategoryRow2Adapter); 

    } 

    public String getSelectedFoodCategoryRow1() { 

     Resources res = getResources(); 

     String selectedspinnerFoodCategoryRow1 = (String) spinnerFoodCategoryRow1.getSelectedItem(); 

     sharedPrefStoreInfo = PreferenceManager.getDefaultSharedPreferences(this); 

     // FOOD NAME OILS ROW1 
     if (spinnerFoodCategoryRow1.getSelectedItemPosition() == 0) { 

      spinnerFoodNameRow1Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, 
        res.getStringArray(R.array.SpinnerArrayInfoOils)); 
      spinnerFoodNameRow1.setAdapter(spinnerFoodNameRow1Adapter); 

      int selectedPosition = spinnerFoodCategoryRow1.getSelectedItemPosition(); 
      SharedPreferences.Editor editor = sharedPrefStoreInfo.edit(); 
      editor.putInt("ROW1", selectedPosition); 
      editor.commit(); 

      return selectedspinnerFoodCategoryRow1; 
     } 

     if (spinnerFoodCategoryRow1.getSelectedItemPosition() == 2) { 

      spinnerFoodNameRow1Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, 
        res.getStringArray(R.array.SpinnerArrayInfoFruits)); 
      spinnerFoodNameRow1.setAdapter(spinnerFoodNameRow1Adapter); 
      int selectedPosition = spinnerFoodCategoryRow1.getSelectedItemPosition(); 
      SharedPreferences.Editor editor = sharedPrefStoreInfo.edit(); 
      editor.putInt("ROW1", selectedPosition); 
      editor.commit(); 

      return selectedspinnerFoodCategoryRow1; 
     } 

     return selectedspinnerFoodCategoryRow1; 

    } 

    // RETRIEVE INFO FOODNAME FROM THE SPINNER ROW1 
    public String getSelectedFoodNameRow1() { 

     Resources res = getResources(); 

     String selectedspinnerFoodCategoryRow1 = (String) spinnerFoodCategoryRow1.getSelectedItem(); 
     String selectedspinnerFoodNameRow1 = (String) spinnerFoodNameRow1.getSelectedItem(); 

     foodCategoryInformation = res.getStringArray(R.array.SpinnerArrayInfoFoodCategory); 

     oilsFoodInformation = res.getStringArray(R.array.SpinnerArrayInfoOils); 
     fruitsFoodInformation = res.getStringArray(R.array.SpinnerArrayInfoFruits); 

     for (int n = 0; n < foodCategoryInformation.length; n++) { 

      // SELECTS INFORMATION ON THE FOOD CATEGORY SPINNER 
      if (spinnerFoodCategoryRow1.getSelectedItemPosition() == n) { 

       // SELECT TYPE OF FOOD CATEGORY 
       switch (selectedspinnerFoodCategoryRow1) { 

       case "OILS": 

        foodCategoryTempRow1 = selectedspinnerFoodCategoryRow1; 

        // ITERATE THE ARRAY TO SELECT THE FOOD NAME ITEM IN OILS 
        for (int i = 0; i < oilsFoodInformation.length; i++) { 

         // SELECT FOOD NAME BASED ON POSITION IN DAIRY 
         if (spinnerFoodNameRow1.getSelectedItemPosition() == i) { 

          SharedPreferences.Editor editor = sharedPrefStoreInfo.edit(); 
          editor.putInt("ROW1-OILS", i); 
          editor.commit(); 
          if (selectedspinnerFoodNameRow1.equals("Canola")) { 

           // ASSIGN THE FOOD NAME SELECTED TO A 
           // foodNameTempRow1 VARIABLE 
           foodNameTempRow1 = selectedspinnerFoodNameRow1; 

           // ASSIGN INFO TO VARIABLES THAT WILL BE USED ON 
           // THE CALCULATION CLICK BUTTON 
           proteinInfoRule3Row1 = canolaProtein; 
           carbsInfoRule3Row1 = canolaCarbs; 
           fatInfoRule3Row1 = canolaFat; 
           caloriesInfoRule3Row1 = canolaCalories; 

          } // end IF CANOLA 

          if (selectedspinnerFoodNameRow1.equals("Coconut Oil")) { 

           // ASSIGN THE FOOD NAME SELECTED TO A 
           // foodNameTempRow1 VARIABLE 
           foodNameTempRow1 = selectedspinnerFoodNameRow1; 

           proteinInfoRule3Row1 = coconutOilProtein; 
           carbsInfoRule3Row1 = coconutOilCarbs; 
           fatInfoRule3Row1 = coconutOilFat; 
           caloriesInfoRule3Row1 = coconutOilCalories; 

          } // end IF Coconut Oil 

          if (selectedspinnerFoodNameRow1.equals("Corn")) { 

           // ASSIGN THE FOOD NAME SELECTED TO A 
           // foodNameTempRow1 VARIABLE 
           foodNameTempRow1 = selectedspinnerFoodNameRow1; 

           proteinInfoRule3Row1 = cornProtein; 
           carbsInfoRule3Row1 = cornCarbs; 
           fatInfoRule3Row1 = cornFat; 
           caloriesInfoRule3Row1 = cornCalories; 

          } // end IF Corn 

         } // end if OILS POSITION 

        } // end for OILS 

        break; 

       case "FRUITS": 

        // ASSIGN THE FOOD CATEGORY SELECTED TO A 
        // foodCategoryTempRow1 VARIABLE 
        foodCategoryTempRow1 = selectedspinnerFoodCategoryRow1; 

        // ITERATE THE ARRAY TO SELECT THE FOOD NAME ITEM IN DAIRY 
        for (int i = 0; i < fruitsFoodInformation.length; i++) { 

         // SELECT FOOD NAME BASED ON POSITION IN DAIRY 
         if (spinnerFoodNameRow1.getSelectedItemPosition() == i) { 

          if (selectedspinnerFoodNameRow1.equals("Apples")) { 
           // ASSIGN THE FOOD SELECTED TO A 
           // foodNameTempRow1Dairy VARIABLE 
           foodNameTempRow1 = selectedspinnerFoodNameRow1; 

           // ASSIGN INFO TO VARIABLES THAT WILL BE USED ON 
           // THE CALCULATION CLICK BUTTON 
           proteinInfoRule3Row1 = applesProtein; 
           carbsInfoRule3Row1 = applesCarbs; 
           fatInfoRule3Row1 = applesFat; 
           caloriesInfoRule3Row1 = applesCalories; 

          } // end if Apples 

          if (selectedspinnerFoodNameRow1.equals("Apricots")) { 

           foodNameTempRow1 = selectedspinnerFoodNameRow1; 

           proteinInfoRule3Row1 = apricotsProtein; 
           carbsInfoRule3Row1 = apricotsCarbs; 
           fatInfoRule3Row1 = apricotsFat; 
           caloriesInfoRule3Row1 = apricotsCalories; 

          } // end if Apricots 

          if (selectedspinnerFoodNameRow1.equals("Bananas")) { 

           foodNameTempRow1 = selectedspinnerFoodNameRow1; 

           proteinInfoRule3Row1 = bananasProtein; 
           carbsInfoRule3Row1 = bananasCarbs; 
           fatInfoRule3Row1 = bananasFat; 
           caloriesInfoRule3Row1 = bananasCalories; 

          } // end if Bananas 

         } // end if FRUITS POSITION 
        } // end for FRUITS 

        break; 

       }// END SWITCH 
      } // IF OUTER 

     } // OUTER FOR LOOP 

     return selectedspinnerFoodNameRow1; 

    }// end METHOD GET FOODNAME ROW1 

    public boolean onTouch(View v, MotionEvent ev) { 
      boolean handledHere = false; 

      final int action = ev.getAction(); 

      final int evX = (int) ev.getX(); 
      final int evY = (int) ev.getY(); 
      int nextImage = -1; 

      ImageView imageView = (ImageView) v.findViewById(R.id.image); 
      if (imageView == null) 
       return false; 

      Integer tagNum = (Integer) imageView.getTag(); 
      int currentResource = (tagNum == null) ? R.drawable.background_food_tracker : tagNum.intValue(); 

      switch (action) { 

      case MotionEvent.ACTION_DOWN: 

       if (currentResource == R.drawable.background_food_tracker) { 

        handledHere = true; 

       } else 
        handledHere = true; 
       break; 

      case MotionEvent.ACTION_UP: 

       int touchColor = getHotspotColor(R.id.image_areas, evX, evY); 

       ColorTouchAreas ct = new ColorTouchAreas(); 
       int tolerance = 25; 
       nextImage = R.drawable.background_food_tracker; 

       if (ct.closeMatch(Color.RED, touchColor, tolerance)) 

       { 


        // GET INPUT EDIT INFORMATION ENTERED IN GRAMS 
        textInputRow1 = editRow1.getText().toString(); 

        // VALIDATION NOT EMPTY FIELD EDITTEXT 
        if (textInputRow1.equals("")) 

        { 
         MainActivity.mpButtonSumit.start(); // sound 

         tToast("Please Enter Weight Of Grams For " + foodNameTempRow1); 
        } 

        else { 

         // SELECTS THE TYPE OF FOOD CATEGORY 
         switch (foodCategoryTempRow1) { 

         case "OILS": 

          // tToast("CLICK OILS ROW1"); // TESTING 


          for (int i = 0; i < oilsFoodInformation.length; i++) { 

           if (foodNameTempRow1.equals(oilsFoodInformation[i])) { 

            MainActivity.mpButtonSumit.start(); // sound 

            // tToast("STRING VALUE= " + textInputRow1); 


            if (!"".equals(textInputRow1)) { 


             gramsEditTextInputParseRow1 = Integer.parseInt(textInputRow1); 

             // tToast("INT VALUE= " + 
             // String.valueOf(gramsEditTextInputParseRow1)); 
             // //TESTING 


             resultIntProteinRow1 = (double) (gramsEditTextInputParseRow1 
               * proteinInfoRule3Row1); 
             resultIntProteinRow1 = (int) Math.round(resultIntProteinRow1); 
             // MAKE CALCULATION CARBS 
             resultIntCarbsRow1 = (double) (gramsEditTextInputParseRow1 * carbsInfoRule3Row1); 
             resultIntCarbsRow1 = (int) Math.round(resultIntCarbsRow1); 
             // MAKE CALCULATION FAT 
             resultIntFatRow1 = (double) (gramsEditTextInputParseRow1 * fatInfoRule3Row1); 
             resultIntFatRow1 = (int) Math.round(resultIntFatRow1); 
             // MAKE CALCULATION CALORIES 
             resultIntCaloriesRow1 = (double) (gramsEditTextInputParseRow1 
               * caloriesInfoRule3Row1); 
             resultIntCaloriesRow1 = (int) Math.round(resultIntCaloriesRow1); 
             // PARSE BACK FROM INTEGER TO STRING TO SET 
             // THE TEXT WHEN CLICK BUTTON IS CLICED 
             textInputRow1ResultProtein = Integer.toString((int) resultIntProteinRow1); 
             textInputRow1ResultCarbs = Integer.toString((int) resultIntCarbsRow1); 
             textInputRow1ResultFat = Integer.toString((int) resultIntFatRow1); 
             textInputRow1ResultCalories = Integer.toString((int) resultIntCaloriesRow1); 

             // CONCATENATE INFORMATION IN ROW 1 
             concatenateInfoRow1 = textInputRow1ResultProtein + " - " + textInputRow1ResultCarbs 
               + " - " + textInputRow1ResultFat + " - " + textInputRow1ResultCalories 

             ; 

             // CREATE KEY ROW1 
             keyRow1 = currentDateString + "-" + "keyRow1";/
             sharedPrefStoreInfo = PreferenceManager.getDefaultSharedPreferences(this); 

             // now get Editor 
             SharedPreferences.Editor editor = sharedPrefStoreInfo.edit(); 

             // put your value the key would be current 
             // date + keyRow1 
             editor.putString(keyRow1, concatenateInfoRow1); 

             // commits your edits 
             editor.commit(); 

            } // end if initial edittext is empty 

            textViewProteinRow1.setText(textInputRow1ResultProtein); 

            // CARBS GRAMS 
            textViewCarbsRow1.setText(textInputRow1ResultCarbs); 

            // FAT GRAMS 
            textViewFatRow1.setText(textInputRow1ResultFat); 

            // CALORIES GRAMS 
            textViewCaloriesRow1.setText(textInputRow1ResultCalories); 

           } // end if Oils 

          } // end for Oils 

          break; 

         case "FRUITS": 


          for (int i = 0; i < fruitsFoodInformation.length; i++) { 
           if (foodNameTempRow1.equals(fruitsFoodInformation[i])) { 

            MainActivity.mpButtonSumit.start(); // sound 

            // tToast("STRING VALUE= " + textInputRow1); 

            if (!"".equals(textInputRow1)) { 

             gramsEditTextInputParseRow1 = Integer.parseInt(textInputRow1); 


             resultIntProteinRow1 = (double) (gramsEditTextInputParseRow1 
               * proteinInfoRule3Row1); 
             resultIntProteinRow1 = (int) Math.round(resultIntProteinRow1); // ROUND 
                             // UP 
                             // VALUE 

             // MAKE CALCULATION CARBS 
             resultIntCarbsRow1 = (double) (gramsEditTextInputParseRow1 * carbsInfoRule3Row1); 
             resultIntCarbsRow1 = (int) Math.round(resultIntCarbsRow1); // ROUND 

             resultIntFatRow1 = (double) (gramsEditTextInputParseRow1 * fatInfoRule3Row1); 
             resultIntFatRow1 = (int) Math.round(resultIntFatRow1); // ROUND 

             resultIntCaloriesRow1 = (double) (gramsEditTextInputParseRow1 
               * caloriesInfoRule3Row1); 
             resultIntCaloriesRow1 = (int) Math.round(resultIntCaloriesRow1); //      
             textInputRow1ResultProtein = Integer.toString((int) resultIntProteinRow1); 
             textInputRow1ResultCarbs = Integer.toString((int) resultIntCarbsRow1); 
             textInputRow1ResultFat = Integer.toString((int) resultIntFatRow1); 
             textInputRow1ResultCalories = Integer.toString((int) resultIntCaloriesRow1); 

             // CONCATENATE INFORMATION IN ROW 1 
             concatenateInfoRow1 = textInputRow1ResultProtein + " - " + textInputRow1ResultCarbs 
               + " - " + textInputRow1ResultFat + " - " + textInputRow1ResultCalories 

             ; 

             // CREATE KEY ROW1 
             keyRow1 = currentDateString + "-" + "keyRow1"; 

             sharedPrefStoreInfo = PreferenceManager.getDefaultSharedPreferences(this); 

             // now get Editor 
             SharedPreferences.Editor editor = sharedPrefStoreInfo.edit(); 

             editor.putString(keyRow1, concatenateInfoRow1); 

             // commits your edits 
             editor.commit(); 

            } // end if initial edittext is empty 

            // -------------------------------------------------------------------------- 

            textViewProteinRow1.setText(textInputRow1ResultProtein); 

            textViewCarbsRow1.setText(textInputRow1ResultCarbs); 

            textViewFatRow1.setText(textInputRow1ResultFat); 

            textViewCaloriesRow1.setText(textInputRow1ResultCalories); 

           } // end if FRUITS 

          } // end for FRUITS 

          break; 



       } // END HAND SUBMMIT RED IMAGE BUTTON 

       else if (ct.closeMatch(Color.WHITE, touchColor, tolerance)) 
        nextImage = R.drawable.background_food_tracker; 
       ; 
       if (currentResource == nextImage) { 
        nextImage = R.drawable.background_food_tracker; 
       } 
       handledHere = true; 
       break; 

      default: 
       handledHere = false; 
      } // end switch 

      if (handledHere) { 

       if (nextImage > 0) { 
        imageView.setImageResource(nextImage); 
        imageView.setTag(nextImage); 
       } 
      } 
      return handledHere; 
     }// end 
                              // Method 

    public int getHotspotColor(int hotspotId, int x, int y) { 

     ImageView img = (ImageView) findViewById(hotspotId); 
     if (img == null) { 
      // Log.d ("SubMain", "Hot spot image not found"); 
      return 0; 
     } else { 
      img.setDrawingCacheEnabled(true); 
      Bitmap hotspots = Bitmap.createBitmap(img.getDrawingCache()); 
      if (hotspots == null) { 
       // Log.d ("ImageAreasActivity", "Hot spot bitmap was not 
       // created"); 
       return 0; 
      } else { 
       img.setDrawingCacheEnabled(false); 
       return hotspots.getPixel(x, y); 
      } 
     } 
    }// End Method 

    // ---------------------------------------------------------------------- 
    public void tToast(String s) { 
     Context context = getApplicationContext(); 
     int duration = Toast.LENGTH_SHORT; 
     Toast toast = Toast.makeText(context, s, duration); 
     toast.setGravity(Gravity.CENTER, 0, 0); 
     toast.show(); 
    } 

    // ------------------------------------------------------------------------------------------------------------------ 
    public void onStart() { 
       super.onStart(); 

       // GET INFORMATION BACK FROM SPINNER BASED ON POSITION STORED 
       sharedPrefGetInfo = PreferenceManager.getDefaultSharedPreferences(this); 


       int positionRow1 = sharedPrefGetInfo.getInt("ROW1", 0); 

       // tToast(String.valueOf(positionRow1)); //TESTING 

       if (positionRow1 >= 0) { 
        // LOAD SPINNER INFORMATION ROW1 
        spinnerFoodCategoryRow1.setSelection(positionRow1); 

       } 


//---------------------------------------HERE IS THE PROBLEM SETTING THE CORRECT VALUE FOR SPINNER --------------------  
     //THE SPINNER 2 IS NOT BEING SET 
       Resources res = getResources(); 

       oilsFoodInformation = res.getStringArray(R.array.SpinnerArrayInfoOils); 

       if (spinnerFoodCategoryRow1.getSelectedItemPosition() == positionRow1) { 
        tToast("OILS TYPE TRUE"); 

        int positionRow1Oils = sharedPrefGetInfo.getInt("ROW1-OILS", 0); 

        //THIS IS THE CORRECT POSITION FOR SPINNER 2 
        tToast("POSITION FOODNAME BACK = " + String.valueOf(positionRow1Oils)); 

        // validation 
        if (positionRow1Oils >= 0) { 

         for (int n = 0; n < oilsFoodInformation.length; n++) { 

          spinnerFoodNameRow1Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, 
            res.getStringArray(R.array.SpinnerArrayInfoOils)); 
          spinnerFoodNameRow1.setAdapter(spinnerFoodNameRow1Adapter); 

          tToast("Iteration # = " + n); 
          // LOAD SPINNER INFORMATION ROW1 OILS 
          if (n == positionRow1Oils) { 

           tToast("SPINNER FOOD NAME IS SET"); 
           spinnerFoodNameRow1.setSelection(positionRow1Oils); // NOT 
                        // WORKING 
          } 

         } 

        } // end if 

       } 
       // ----------------------------------------------------------------------------------------------------------------------- 
       currentDateString = DateFormat.getDateInstance().format(new Date()); 

       keyRow1 = currentDateString + "-" + "keyRow1"; 
       getBackInformationRow1 = sharedPrefGetInfo.getString(keyRow1, ""); 

       // MAKE SURE THE ARRAY KEY IS NOT EMPTY 
       if (!getBackInformationRow1.equals("")) { 


        getBackInformationParseRow1 = getBackInformationRow1.split(" - ", 4); 

        textViewProteinRow1.setText(getBackInformationParseRow1[0]); 

        textViewCarbsRow1.setText(getBackInformationParseRow1[1]); 

        textViewFatRow1.setText(getBackInformationParseRow1[2]); 

        textViewCaloriesRow1.setText(getBackInformationParseRow1[3]); 

       } 

     }// end class 

Antwort

0

zu meinem Problem zu beheben ich habe gerade die Informationen gespeichert (sharedPref) auf onStart(); und stellen sie die Spinner, die Position unter Verwendung von (positionRow1Oils) von ihm bekommen, auf der Methodenauswahl für spinner1 spinnerFoodNameRow1.setSelection(positionRow1Oils);

public void onStart() { 
       super.onStart(); 

positionRow1Oils = sharedPrefGetInfo.getInt("ROW1-OILS", 0); 
} 


public String getSelectedFoodCategoryRow1() { 

    Resources res = getResources(); 

    String selectedspinnerFoodCategoryRow1 = (String) spinnerFoodCategoryRow1.getSelectedItem(); 

    sharedPrefStoreInfo = PreferenceManager.getDefaultSharedPreferences(this); 

    //FOOD NAME OILS ROW1 
    if (spinnerFoodCategoryRow1.getSelectedItemPosition() == 0) 
    { 

     //POPULATE INFORMATION FROM STRINGS XML TO FOOD NAME SPINNERS DEPENDING ON INFORMATION ON SELECTED ON FOOD CATEGORY SPINNER ROW1 
     spinnerFoodNameRow1Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, res.getStringArray(R.array.SpinnerArrayInfoOils)); 
     spinnerFoodNameRow1.setAdapter(spinnerFoodNameRow1Adapter); 


     //PRESERVE SPINNER INFORMATION ROW1 
     int selectedPosition = spinnerFoodCategoryRow1.getSelectedItemPosition(); 
     SharedPreferences.Editor editor = sharedPrefStoreInfo.edit(); 
     editor.putInt("ROW1", selectedPosition); 
     editor.commit(); 

     *//SET SPINNER FOODNAME OILS WITH THE INFORMATION (POSITION) GOT FROM SHARERE PREFERENCE* 
     spinnerFoodNameRow1.setSelection(positionRow1Oils); 


     return selectedspinnerFoodCategoryRow1; 
    } 

Es scheint, dass, wenn ein spinner2 Informationen in spinner1 Informationen gesetzt basiert, um die Informationen zu erhalten von spinner2 es in spinner1 Verfahren eingestellt werden sollte und nicht auf dem onStart();

hoffen, dass es ihm jemand hilft, den gleichen Blick auf Problem.