Super.onActivityCreated 和 getview 不能与 ActionBarActivity 一起使用

Super.onActivityCreated and getview are not working with ActionBarActivity

我想使用以下代码向我的应用程序添加一个 adFragment:

public  class AdFragment extends ActionBarActivity {


    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_ad, container, false);
    }

    @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        AdView mAdView = (AdView) getView().findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

问题是 Android Studio 说

无法解析方法 onActivityCreated(Android.os.Bundle) super.OnActivityCreated...第

无法为下一行解析方法 getView()

我试过如果把ActionBarActivity换成Fragment是没有问题的但是基于 http://developer.android.com/training/basics/fragments/creating.html

ActionBarActivity 应该可以工作。

有人知道可能的解决方案吗?

提前感谢您的帮助!

以下将在 Fragment.

中工作

任何与膨胀布局相关的代码都应该在 onViewCreated 中。 (您想要视图而不是 activity,对吗?)onViewCreatedonCreateView 之后调用。 view 参数是你膨胀的参数。

AdView mAdView;

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    mAdView = (AdView) view.findViewById(R.id.adView);

    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
}

编辑:根据新事件

以下将在 Activity(或 FragmentActivityActionBarActivity)内工作。

AdView mAdView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_layout); // the layout with this id will be inflated

    mAdView = (AdView) findViewById(R.is.adView);

    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

    // ...
}

编辑 2

我不知道广告视图的工作原理。也许您不必每次都加载广告,因为它会记住。尝试这样做:

if (savedInstanceState == null) {
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
}