如何保存微调器,以节省/共享preferences [英] How to save spinner to saved/shared 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屋!