0

Androidでスピナーの選択状態を維持したいだけです。Webサービスからデータを取得してスピナーにポップするアクティビティAがあります。その中からいずれかのアイテムを選択し、別のアクティビティ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) {

                }
            });

ありがとう。

4

2 に答える 2

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 に答える
0

アクティビティの停止時に SharedPreferences にインデックスを保存するだけで、そのアクティビティに戻ったときにそれを取得できます。

Android デベロッパーでの共有設定

于 2013-06-13T14:04:52.133 に答える