2014-01-14 70 views
1

我有以下代碼:如何存儲和檢索內容是從單一的選擇項中選擇

protected void showSelectToDialog() { 
     boolean[] checkedDate = new boolean[toDate.length]; 
     int count = toDate.length; 

     DialogInterface.OnClickListener setD2 = new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       //TODO Auto-generated method stub 
       onChangeSelectedTo(which); 
      } 
     }; 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Select To Year"); 
     builder.setSingleChoiceItems(toDate, count, setD2); 

     builder.setCancelable(true); 
     builder.setPositiveButton("Cancel", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.dismiss(); 
      } 
     }); 
     dialog2 = builder.create(); 
     dialog2.show(); 
    } 

    protected void onChangeSelectedTo(int j) { 
     bTo.setText(toDate[j]); 
     sTo = ((AlertDialog)dialog2).getListView().getCheckedItemPosition(); 
     blTo = true; 
     displayToast(String.valueOf(sTo)); 
     to = j; 
     dialog2.dismiss(); 
    } 

我所希望做的是,在第一時間和用戶對話負載選擇的選擇它被存儲。因此,下次用戶打開對話框時,它會記住所選內容並滾動到該選項。

我該如何做到這一點?

+1

使用共享首選項? –

+0

可能。但是當它加載時,我在哪裏設置選擇? – Si8

+0

請檢查我的解決方案是否適合您。 –

回答

1

使用「共享首選項」首次保存所選選項的位置。 然後在showSelectToDialog()的開始處檢查共享首選項中是否存在任何值,如果是,則將count的值從共享首選項設置值計數設置爲toDate.length

1

我看不到剩下的代碼,但您只需將用戶的選擇保存在某個變量的其他位置,然後在每次打開對話時閱讀該選項。它可以是類的靜態變量,也可以是類的實例變量,也可以是您可以訪問的其他類的公共字段,例如父對象。您只需在關閉對話框時將其分配,然後將其讀回並初始化打開對話框時讀取的值。

+0

'to = j'是我保存的值。我如何修改,以便在下次對話框加載其選定內容時進行修改。那是我遇到問題的地方... – Si8

+0

我已經告訴過你了。在showSelectToDialog()中,你需要檢查你保存它的其他地方的值,並設置bTo.setText(toDate [j]);然後在onChangeSelectedTo(...)中,您需要更改默認值,無論您保存的是哪個位置,所以下次讀取它將會有所不同。 – SpacePrez

相關問題