2012-08-30 41 views
8

我創建了一個對話框,其中自定義ListViewSpinner顯示器建模,最初它以「Select Gender」值開始。在Android中設置默認選擇的ListView警報對話框項目

當對話框打開時,它會提示您進行選擇(就像微調框一樣)。如果再次選擇選項,它將顯示相同的選項,但不會指示哪個選項已被選中。

例子:
默認值: 「選擇性別」
對話框沒有選擇
用戶選擇打開: 「男」
用戶重新打開對話框...
對話框沒有選擇打開

我想讓它選擇「男性」,因爲這是他們最後的選擇

這是我到目前爲止的代碼:

genderItems = getResources().getStringArray(R.array.gender_array); 
genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, genderItems); 

genderDrop.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction() == MotionEvent.ACTION_DOWN) { 
       Builder genderBuilder = new AlertDialog.Builder(Register.this) 
        .setTitle(R.string.gender_prompt) 
        .setAdapter(genderAdapter, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         inputGender.setText(genderItems[which]); 
         dialog.dismiss(); 
        } 
       }); 
       AlertDialog genderAlert = genderBuilder.create(); 
       genderAlert.show(); 
       genderAlert.getListView().setSelection(0); 
      } 
      return false; 
     } 
}); 

genderAlert.getListView().setSelection(0)不設置默認選擇爲「男」
genderAlert.getListView().setSelection(1)不設置默認選擇爲「女」

回答

19

想通了out:

我從.setAdapter切換到.setSingleChoiceItems它有一個默認選擇參數。然後,我所要做的就是創建一個全局變量,每次單擊某個選項時都會設置該變量。全局變量最初被設置爲-1,所以沒有選擇選項,然後一旦我點擊了它被設置到位置的東西,下一次創建對話框時,選擇反映了我以前的選擇。見下:

Integer selection = -1; 

genderItems = getResources().getStringArray(R.array.gender_array); 
genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, genderItems); 

genderDrop.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction() == MotionEvent.ACTION_DOWN) { 
       Builder genderBuilder = new AlertDialog.Builder(Register.this) 
        .setTitle(R.string.gender_prompt) 
        .setSingleChoiceItems(genderAdapter, selection, new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          inputGender.setText(genderItems[which]); 
          selection = which; 
          dialog.cancel(); 
         } 
        }); 
       AlertDialog genderAlert = genderBuilder.create(); 
       genderAlert.show(); 
      } 
      return false; 
     } 
}); 
+0

什麼是'genderDrop'在這裏? – NarendraJi

相關問題