我的Fragment类的类变量为null

时间:2015-04-10 09:10:41

标签: android android-fragments

我正在尝试为我的一个片段类编写一个测试用例。 为此,我使用以下命令将片段动态添加到我的活动中:

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(); 必须从主线程调用。

`

1 个答案:

答案 0 :(得分:0)

适配器为空,因为事务尚未完成,即它们等待在稍后阶段执行。因为robotium测试不是通过UI线程运行的,所以不能直接执行executePendingTransactions()。

我通过调用在UI线程上执行挂起事务来解决它,即

getactivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
           fragmentManager.executePendingTransactions();
        }
});