2015-04-10 2 views
0

Я пытаюсь написать тестовый пример для одного из моих классов фрагментов. Для этого я добавить фрагмент моей деятельности динамически с помощью:Переменные класса моего класса Fragment: null

fragmentTransaction.add(fragment, TAG); 
fragmentTransaction.commit(); 

теперь, если я пытаюсь сделать это:

fragment.getmAdapter() // returns null 

Я всегда получаю это как нулевой, хотя mAdapter был инициализирован во время onCreateView метод класса фрагмента.

Я также попытался позвонить fragmentManager.executePendingTransactions(); after fragmentTransaction.commit(); but now I get error that fragmentManager.executePendingTransactions(); должен вызываться из основного потока.

`

+0

вы звоните 'fragmentManager.executePendingTransactions(); 'из не-UI нить –

+0

да. Это мой тестовый класс. Мне нужно написать тестовый пример для async-задачи. –

ответ

0

Адаптер нуля, поскольку операции еще не были завершены, т.е. они были в ожидание, чтобы быть выполнены на более позднем этапе. И поскольку тесты robotium не запускаются по потоку пользовательского интерфейса, executePendingTransactions() не удалось напрямую.

я решил ее сделать вызов, чтобы выполнить незавершенные транзакции на UI потоке, т.е.

getactivity().runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      fragmentManager.executePendingTransactions(); 
     } 
}); 
Смежные вопросы