我只想在android中维护spinner选择状态。我是一个从webservice& amp;中检索数据的活动A.弹出到spinner.After从中选择任何一个项目并转到另一个活动B.再次回到活动A.,我需要在微调器上显示所选项目,而无需再次进行Web调用。
我的代码:
@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) {
}
});
感谢。
答案 0 :(得分:0)
只需在活动停止时保存SharedPreferences中的索引,在返回该活动时检索它。
答案 1 :(得分:0)
您可以将精选的微调器索引保存在静态变量中,用-1初始化,然后onResume检查该变量的值,如果它不是-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);
}
}