如何在android中维护微调器选定状态
我只想在android中维护spinner selected状态。我有一个从webservice检索数据的活动A并弹出到spinner。从该活动中选择任何一个项目后,转到另一个活动B。返回活动A后,我需要在spinner上显示所选项目,而无需再次转到web调用 我的代码:如何在android中维护微调器选定状态,android,android-spinner,Android,Android Spinner,我只想在android中维护spinner selected状态。我有一个从webservice检索数据的活动A并弹出到spinner。从该活动中选择任何一个项目后,转到另一个活动B。返回活动A后,我需要在spinner上显示所选项目,而无需再次转到web调用 我的代码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); spinner =
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
spinner = (Spinner) findViewById(R.id.spinner);
if(spinnerFlag=1){
spinner.setSelection(index);
}
else{
//Web call for spinner data
}
...
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent,
View view, int arg2, long arg3) {
String seletcedProductName = parent.getSelectedItem()
.toString();
spinnerFlag=0;
index=arg2;
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
微调器=(微调器)findViewById(R.id.spinner);
if(喷丝头标志=1){
微调器。选择(索引);
}
否则{
//微调器数据的Web调用
}
...
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共无效项(AdapterView父项,
视图,整数arg2,长arg3){
字符串seletcedProductName=parent.getSelectedItem()
.toString();
喷丝头标志=0;
指数=arg2;
}
未选择公共无效(AdapterView arg0){
}
});
谢谢。只要将索引保存在活动停止时的SharedReferences中,当您返回到该活动时检索它即可
您可以将微调器的选定索引保存在静态变量中,用-1初始化,然后在恢复时检查该变量的值,如果该变量不是-1,则用它设置微调器的选定索引
static int position=-1;
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent,
View view, int arg2, long arg3) {
String seletcedProductName = parent.getSelectedItem()
.toString();
spinnerFlag=0;
index=arg2;
position=arg2;
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
@Override
protected void onResume() {
super.onResume();
if(position!=-){
spinner.setSelection(index);
}
}
static int position=-1;
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共无效项(AdapterView父项,
视图,整数arg2,长arg3){
字符串seletcedProductName=parent.getSelectedItem()
.toString();
喷丝头标志=0;
指数=arg2;
位置=arg2;
}
未选择公共无效(AdapterView arg0){
}
});
@凌驾
受保护的void onResume(){
super.onResume();
如果(位置!=-){
微调器。选择(索引);
}
}
由于android处理垃圾收集的方式,这是不可靠的,您最好使用共享首选项或传递捆绑包