2016-07-12 3 views
1

Я построить AlertDialog коробки скак проверить MultiChoiceItems андроида диалогового окна

public class ConstantDialogFragment extends DialogFragment { 

    private AlertDialog.Builder builder; 

    private AlertDialog alertDialog; 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     final int[] constantProtocol = {0}; 
     builder = new AlertDialog.Builder(getActivity(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT); 

     builder.setTitle(getResources().getString(R.string.some_message)) 
       .setMultiChoiceItems(R.array.some_choice, null, 
         new DialogInterface.OnMultiChoiceClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int which, 
               boolean isChecked) { 
           // some method 
          } 
         }) 
       .setPositiveButton(getResources().getString(R.string.ok_dialog), new DialogInterface.OnClickListener() { 

        class LoadConfigTask { 
         private ProgressDialog dialog; 
         private Activity activity; 

         public LoadConfigTask(Activity activity) { 
          this.activity = activity; 
          dialog = new ProgressDialog(activity, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT); 
         } 

         public void execute() { 
          try { 
           // some method 

          } catch (Exception e) { 
           // some method 

          } 
         } 
        } 

        @Override 
        public void onClick(DialogInterface dialog, int id) { 
         // some method 
        } 
       }) 
       .setNegativeButton(getResources().getString(R.string.cancel_dialog), new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 
         // some thing 
        } 
       }); 
     builder.create(); 
     alertDialog = builder.show(); 
     return alertDialog; 
    } 

    public AlertDialog getAlertDialog(){ 
     return alertDialog; 
    } 

Тогда я попробовал эту espresso реализации:

onView(withText("my first choice")). 
       perform(click()); 

и я получаю

NoMatchingViewException: No views in hierarchy found matching: with text: is my string" 

Как я могу исправить это?

+0

Что это все касается вашего диалогового окна? – greenapps

+0

@greenapps Я не очень понимаю ваш вопрос. Я создаю многоэлементное диалоговое окно, и мне нужно проверить какое-то поведение после нажатия на один из флажков – Newben

+0

Где находится этот onView? Почему вы не отправляете полный код? Начните с кода слушателя. – greenapps

ответ

0

Извлечение в исходном коде Android, я нашел полезные методы. Поэтому, чтобы получить контроль над предметами AlertDialog, я должен был это сделать

ListView listView = alertDialog.getListView(); 
View child = listView.getChildAt(0); 
child.performClick();