0

我只想在android中保持微调器选择状态。我有一个活动A,它从webservice检索数据并弹出到微调器中。从中选择任何一个项目并转到另一个活动B.一旦回到活动A.,我需要在微调器上显示所选项目,而无需再次进行网络通话。

我的代码:

@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) {

                }
            });

谢谢。

4

2 回答 2

0

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

Android 开发者的共享偏好

于 2013-06-13T14:04:52.133 回答
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);

        }

}
于 2013-06-13T14:32:19.150 回答