如何保存微调器,以节省/共享preferences [英] How to save spinner to saved/shared preferences

查看:309
本文介绍了如何保存微调器,以节省/共享preferences的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能保存字符串在我保存preferences但有困难救了我的微调。

 公共类饮食延伸活动{  私人共享preferences共享preferences;
  微调spnCalorieRange;

下面是我的onCreate:

 共享preferences = preferenceManager.getDefaultShared preferences(本);字符串strAge = Integer.toString(年龄);
串strHeight = Integer.toString(高度);
字符串strWeight = Integer.toString(重量);名称= loadSaved preference(名称);
strAge = loadSaved preference(strAge);
strHeight = loadSaved preference(strHeight);
strWeight = loadSaved preference(strWeight);etName.setText(名);
etAge.setText(strAge);
etHeight.setText(strHeight);
etWeight.setText(strWeight);

这是我的微调在我的onCreate:

  =微调(微调)findViewById(R.id.spnCalorieRange);
    适配器= ArrayAdapter.createFromResource(这一点,R.array.Calorie_Range,android.R.layout.simple_spinner_dropdown_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(适配器);    spinner.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener(){        @覆盖
        公共无效onItemSelected(适配器视图<>母公司,观景,
                INT位置,长的id){
            长项= parent.getItemIdAtPosition(位置);
            。字符串POS = spinner.getSelectedItem()的toString();
            //shared$p$pferences.edit().putInt(\"$p$pF_SPINNER位置).commit();
            如果(项目== 0){
                deficitPercentage = 0.05;
            }
            否则如果(项目== 1)
            {
                deficitPercentage = 0.1;
            }
            否则如果(项目== 2)
            {
                deficitPercentage = 0.15;
            }
            否则,如果(项目== 3)
            {
                deficitPercentage = 0.2;
            }
            否则,如果(项目== 4)
            {
                deficitPercentage = 0.25;
            }
            其他
            {
                deficitPercentage = 0.3;
            }
            //editor.putString(\"pos,POS机);
            //editor.commit();
        }        @覆盖
        公共无效onNothingSelected(适配器视图<>母公司){
            // TODO自动生成方法存根        }    });

这是一个按钮,在这里我节省了串并背着我的onclick微调

 年龄=(int)的Double.parseDouble(etAge.getText()的toString());
        高度=(int)的Double.parseDouble(etHeight.getText()的toString());
        重量=(int)的Double.parseDouble(etWeight.getText()的toString());
        //保存preferences
        字符串strAge = Integer.toString(年龄);
        串strHeight = Integer.toString(高度);
        字符串strWeight = Integer.toString(重量);        。名称= etName.getText()的toString();
        节省preference(名,名);        。strAge = etAge.getText()的toString();
        节省preference(strAge,strAge);        。strHeight = etHeight.getText()的toString();
        节省preference(strHeight,strHeight);        。strWeight = etWeight.getText()的toString();
        节省preference(strWeight,strWeight);:


解决方案

在你的 onItemSelected 地点:

  INT spinnerPosition = spinner.getSelectedItemPosition();
saveSpinnerPosition(spinnerPosition);

Save方法

 公共无效saveSpinnerPosition(INT位置){
    共享preferences = preferenceManager.getDefaultShared preferences(本);
    共享preferences.Editor编辑=共享preferences.edit();
    prefEditor.putInt(spnCalorieRange位置);
    prefEditor.apply();
}

Load方法

 公共无效loadSpinnerPosition {
    共享preferences = preferenceManager.getDefaultShared preferences(本);
    INT位置=共享preferences .getIntspnCalorieRange, - 1);
    如果(spinnerValue -1个)    //设置Spinner的值
    spinner.setSelection(位置);
}

要放纺纱回到位置,叫 loadSpinnerPosition 的onCreate

------------------------------------------------------------------------------------------------------------------------------------

编辑:

因为我注意到<一href=\"http://stackoverflow.com/questions/35601149/how-to-save-radio-button-status-to-saved-shared-$p$pferences\">this帖子也是你的问题,U还可以做一切的一次

在你的活动

  INT spinnerPosition;

在你的 onItemSelected 地点:

  spinnerPosition = spinner.getSelectedItemPosition();

Save方法

 公共无效saveMethod(){
    共享preferences = preferenceManager.getDefaultShared preferences(本);
    共享preferences.Editor编辑=共享preferences.edit();
    editor.putBoolean(性别,radioSexButton.isChecked());
    editor.putBoolean(男,rdoMale.isChecked());
    prefEditor.putInt(spnCalorieRange,spinnerPosition);
    prefEditor.apply();
}

Load方法

 公共无效loadMethod(){
    共享preferences = preferenceManager.getDefaultShared preferences(本);
    INT位置=共享preferences .getIntspnCalorieRange, - 1);
    radioSexButton.setChecked(共享preferences.getBoolean(性别,FALSE));
    rdoMale.setChecked(共享preferences.getBoolean(男,FALSE));    如果(spinnerValue -1个)    //设置Spinner的值
    spinner.setSelection(位置);
}

然后拨打 saveMethod()当u要保存所有的状态,并调用 loadMethod()当u想要加载所有的状态

应该可以帮助你出来

I am able to save Strings in my saved preferences but having difficulty saving my spinner.

 public class Diet extends Activity {

  private SharedPreferences sharedPreferences;
  Spinner spnCalorieRange;

Here is my onCreate:

sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

String strAge = Integer.toString(age);
String strHeight = Integer.toString(height);
String strWeight = Integer.toString(weight);

name = loadSavedPreference("name");
strAge = loadSavedPreference("strAge");
strHeight = loadSavedPreference("strHeight");
strWeight = loadSavedPreference("strWeight");

etName.setText(name);
etAge.setText(strAge);
etHeight.setText(strHeight);
etWeight.setText(strWeight);

This is my Spinner in my onCreate:

spinner = (Spinner)findViewById(R.id.spnCalorieRange); 
    adapter = ArrayAdapter.createFromResource(this, R.array.Calorie_Range, android.R.layout.simple_spinner_dropdown_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            long item = parent.getItemIdAtPosition(position);
            String pos =spinner.getSelectedItem().toString();
            //sharedPreferences.edit().putInt("PREF_SPINNER", position).commit();
            if (item == 0){
                deficitPercentage = .05;
            }
            else if (item ==1)
            {
                deficitPercentage = .1;
            }
            else if (item ==2)
            {
                deficitPercentage = .15;    
            }
            else if (item ==3)
            {
                deficitPercentage = .2;
            }
            else if (item ==4)
            {
                deficitPercentage = .25;
            }
            else
            {
                deficitPercentage = .3;
            }
            //editor.putString("pos", pos);
            //editor.commit();
        }

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

        }

    });

This is in my onCLick behind a button, where I'm saving the strings and spinner

 age = (int) Double.parseDouble(etAge.getText().toString());
        height = (int) Double.parseDouble(etHeight.getText().toString());
        weight = (int) Double.parseDouble(etWeight.getText().toString());


        //Save Preferences
        String strAge = Integer.toString(age);
        String strHeight = Integer.toString(height);
        String strWeight = Integer.toString(weight);

        name = etName.getText().toString();
        savePreference("name",name);

        strAge = etAge.getText().toString();
        savePreference("strAge",strAge);

        strHeight = etHeight.getText().toString();
        savePreference("strHeight",strHeight);

        strWeight = etWeight.getText().toString();
        savePreference("strWeight",strWeight);:

解决方案

In your onItemSelected place:

int spinnerPosition = spinner.getSelectedItemPosition();
saveSpinnerPosition(spinnerPosition);

Save method

public void saveSpinnerPosition(int position){
    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    prefEditor.putInt("spnCalorieRange",position); 
    prefEditor.apply();
}

Load method

public void loadSpinnerPosition{
    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    int position= sharedPreferences .getInt"spnCalorieRange",-1);
    if(spinnerValue > -1)

    // set the value of the spinner 
    spinner.setSelection(position);
}

To put spinners back to position, call loadSpinnerPosition in your onCreate

------------------------------------------------------------------------------------------------------------------------------------

Edit:

because I noticed this post is also your question, u can also do everything at once:

At the top of your activity:

int spinnerPosition; 

In your onItemSelected place:

spinnerPosition = spinner.getSelectedItemPosition();

Save method

public void saveMethod(){
    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putBoolean("Gender", radioSexButton.isChecked());
    editor.putBoolean("Male", rdoMale.isChecked());
    prefEditor.putInt("spnCalorieRange",spinnerPosition); 
    prefEditor.apply();
}    

Load method

public void loadMethod(){
    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    int position= sharedPreferences .getInt"spnCalorieRange",-1);
    radioSexButton.setChecked(sharedPreferences.getBoolean("Gender", false)); 
    rdoMale.setChecked(sharedPreferences.getBoolean("Male", false));

    if(spinnerValue > -1)

    // set the value of the spinner 
    spinner.setSelection(position);
}

Then call saveMethod() when u want to save all your states, and call loadMethod() when u wanna load all your states

Should help u out

这篇关于如何保存微调器,以节省/共享preferences的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆