不会为启动的第二个微调器保留微调器值



我有两个微调器,第二个微调器的信息基于第一个微调器的选择例微调器 1 蛋白质乳制品水果如果微调器 1 与蛋白质一起设置,则微调器 2 鸡蛋鸡如果微调器 1 与水果一起设置,则微调器 2 苹果橙

上次选择的值 微调器 2 橙色

现在我想保留SPINNER1和SPINNER2中选择的最后值,我正在使用共享首选项来完成此操作,它按预期工作微调器 1 水果位置 2 但是,对于SPINNER2,它不会设置选择的最后一个值,即使该位置是正确的位置 1 调用它时的位置 1 onStart();它选择了数组 APPLE 上的第一个值

任何帮助将不胜感激

谢谢

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

为了解决我的问题,我刚刚将信息存储在onStart();上(sharedPref(,并使用从中获取的位置(位置Row1Oils(设置微调器,在微调器1的方法选择上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;
    }
似乎,当基于微调器1信息设置微调器2

信息时,为了保留微调器2的信息,应该在微调器1方法中设置它,而不是在onStart();

希望它能帮助面临相同问题的人。

相关内容

  • 没有找到相关文章

最新更新