我正在尝试为我的一个片段类编写一个测试用例。 为此,我使用以下命令将片段动态添加到我的活动中:
fragmentTransaction.add(fragment, TAG);
fragmentTransaction.commit();
现在如果我尝试这样做:
fragment.getmAdapter() // returns null
我总是把它作为null,尽管在片段类的onCreateView方法中初始化了mAdapter。
我还尝试调用fragmentManager.executePendingTransactions();
after fragmentTransaction.commit();
but now I get error that
fragmentManager.executePendingTransactions();
必须从主线程调用。
`
答案 0 :(得分:0)
适配器为空,因为事务尚未完成,即它们等待在稍后阶段执行。因为robotium测试不是通过UI线程运行的,所以不能直接执行executePendingTransactions()。
我通过调用在UI线程上执行挂起事务来解决它,即
getactivity().runOnUiThread(new Runnable() {
@Override
public void run() {
fragmentManager.executePendingTransactions();
}
});