2013-01-16 17 views
-1

我想在單聲道爲android使用多選單元。 我想將國家綁定到微調器 現在在正常的微調器中有帶單選按鈕的標籤。 但我想用複選框標籤。如何在單聲道中使用多選旋鈕控制器?

任何人都可以幫助我。

AlertDialog.Builder alt_bld = new AlertDialog.Builder(
     CareCardActivity.this); 
alt_bld.setTitle("Select Recepients"); 
alt_bld.setMultiChoiceItems(tempname, new boolean[tempname.length] , new DialogInterface.OnMultiChoiceClickListener() { 

    public void onClick(DialogInterface dialog, int which, 
      boolean isChecked) { 
     // TODO Auto-generated method stub 

    } 
}); 
alt_bld.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 

    public void onClick(DialogInterface dialog, int which) { 

     // TODO Auto-generated method stub 
     ListView list = ((AlertDialog) dialog).getListView(); 

     Log.v("LIST COUNT:: ", ""+list.getCount()); 
     for (int i = 0; i < list.getCount(); i++) { 
      boolean checked = list.isItemChecked(i); 

      if (checked) { 
       sb.append(contactNumber[i]).append(";"); 
      } 
     } 
     sb = sb.replace(
       sb.length() - 1, 
       sb.length(), ""); 
     txtPhoneNo.setText(sb.toString()); 
    } 
}); 

alt_bld.setNegativeButton("Cancel", 
     new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 

      } 
     }); 

AlertDialog alert = alt_bld.create(); 
alert.show(); 

我已經試過這個代碼在日食它工作得很好,但我想這樣做的單聲道在C#開發。

+0

單選按鈕和複選框之間有區別。所以你要求的是一個多選的微調器?另外,stackoverflow是針對您無法工作的特定代碼段中的問題,而不是爲您提供現成的解決方案,因此請添加您在問題中嘗試過的內容。 – Cheesebaron

回答

0

呼叫按鈕

ShowDialog(DIALOG_MULTIPLE_CHOICE); 

添加點擊此功能下面的代碼

protected override Dialog OnCreateDialog(int id) 
    { 
     switch (id) { 
     case DATE_DIALOG_ID: 
      return new DatePickerDialog(this, OnDateSet, date.Year, date.Month - 1, date.Day); 



     case DIALOG_MULTIPLE_CHOICE: { 
      var builder = new AlertDialog.Builder (this); 
      //   builder.SetIcon (Resource.Drawable.ic_popup_reminder); 
      builder.SetTitle ("Select Country"); 
      builder.SetMultiChoiceItems (countryName, new bool[countryName.Length], MultiListClicked); 

      builder.SetPositiveButton ("ok", OkClicked); 
      builder.SetNegativeButton ("Cancel", CancelClicked); 

      return builder.Create(); 
     } 
     } 
     return null; 
    } 
    private void MultiListClicked (object sender, DialogMultiChoiceClickEventArgs e) 
    { 
     Console.WriteLine ("countryMultiListClicked"); 
     if (e.IsChecked) { 
      mSelectedItems.Add (countryName [(int)e.Which]); 
      mSelectedItemsID.Add (countryID [(int)e.Which]); 
     } 
     else if (mSelectedItems.Contains(countryName [(int)e.Which])) 
     { 
      mSelectedItems.Remove(countryName [(int)e.Which]); 
      mSelectedItemsID.Remove(countryID [(int)e.Which]); 
     } 
    } 
    private void OkClicked (object sender, DialogClickEventArgs e) 
    { 
     Console.WriteLine ("countryOkClicked"); 

     String listString = ""; 
     for (int i =0; i<mSelectedItems.Count; i++) { 
      listString += mSelectedItems [i] + ","; 
     } 
     if (listString.Length > 0) { 
      listString = listString.Remove (listString.Length - 1); 
     } 
     et_country.Text = listString; 

     listStringId = ""; 
     for (int i =0; i<mSelectedItemsID.Count; i++) { 
      listStringId += mSelectedItemsID [i] + ","; 
     } 
     if (listStringId.Length > 0) { 
      listStringId = listStringId.Remove (listStringId.Length - 1); 
     } 
     Console.WriteLine (listStringId); 
    } 
    private void CancelClicked (object sender, DialogClickEventArgs e) 
    { 
     Console.WriteLine("countryCancelClicked"); 
    } 

這工作得很好........!

相關問題