Android 正在等待viewpager中的碎片膨胀

Android 正在等待viewpager中的碎片膨胀,android,android-fragments,Android,Android Fragments,我有一个应用程序,使用一个单一的布局来显示所有的输出等。我已经把它转换成一个多标签应用程序使用 ViewPager viewPager = (ViewPager) findViewById(R.id.pager); ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new FragmentOne(), "Tab 1"); adapter.addFrag

我有一个应用程序,使用一个单一的布局来显示所有的输出等。我已经把它转换成一个多标签应用程序使用

ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new FragmentOne(), "Tab 1");
adapter.addFragment(new FragmentTwo(), "Tab 2");
adapter.addFragment(new FragmentThree(), "Tab 3");
viewPager.setAdapter(adapter);
问题是我不能再在onCreate期间访问片段(就在上面的代码之后),因为我现在得到的错误是它们是空对象引用

例如,如果我尝试在上面的代码之后使用此代码设置按钮的标题

Button button=(Button) findViewById(R.id.startButton);
button.setText("BLAH");
我得到空对象错误

我使用onCreate设置文本、谷歌地图视图和GPS检查,所以这不仅仅是一个简单的按钮更改

如何确保所有页面布局都已完成膨胀,并且可以安全地访问其中的对象?我想在应用程序首次启动时更新所有选项卡/页面内容


谢谢。

最好的办法是将此代码移到片段中。您可以连接到
onCreateView()
onViewCreated()
onActivityCreated()
,或者任何其他片段生命周期方法

如果出于某种原因需要在活动中执行此代码,那么您将在活动中创建一个新方法,并从这些片段生命周期方法之一触发它。也许是这样的:

// in the activity
public void onFragmentStartup() {
    Button button=(Button) findViewById(R.id.startButton);
    button.setText("BLAH");
}

// in the fragment
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    ((MainActivity) getActivity()).onFragmentStartup();
}