如何在android中维护微调器选择状态

时间:2013-06-13 13:59:52

标签: android android-spinner

我只想在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) {

                }
            });

感谢。

2 个答案:

答案 0 :(得分:0)

只需在活动停止时保存SharedPreferences中的索引,在返回该活动时检索它。

Shared Preferences at Android Developer

答案 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);

        }

}