2活动中使用的常用片段
public class Ads extends Fragment {
private View rootView ;
private MoPubView adView ;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.ads, container, true) ;
adView = (MoPubView) rootView.findViewById(R.id.adView) ;
adView.setAdUnitId(LogoQuizUtil.MOPUB_AD_UNIT);
adView.loadAd();
return rootView;
}
}
片段布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ad_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom" >
<com.mopub.mobileads.MoPubView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_marginTop="10dp"
android:gravity="bottom" />
</LinearLayout>
我包含此片段的其他布局
<fragment
android:id="@+id/ads"
android:name="myPackage.Ads"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom" />
第一次调用setContentView(R.layout.ads)时,我得到一个异常,当第二个活动调用fragementactivity(Ads)时,我在setContentView(R.id.ads)中得到一个异常。 / p>
我得到的例外是
08-07 09:38:30.359: W/System.err(975): java.lang.RuntimeException: Unable to start activity ComponentInfo{mypackage/mypackage.SecondActivity}: android.view.InflateException: Binary XML file line #263: Error inflating class fragment
答案 0 :(得分:3)
让我们从头开始。活动不是片段,片段不是活动。
您需要一个包含/控制片段的活动。为此,您可以扩展Activity
(用于Honeycomb +开发)或使用支持库并扩展FragmentActivity
。在本课程中,您将使用setContentView
来设置包含片段的布局。
然后,您可以从该类调用片段管理器(getFragmentManager
或getSupportFragmentManager
,具体取决于您已扩展的类)。然后使用片段管理器创建,附加和分离片段。
片段(不是活动)的编码方式不同。它应该有一个onCreateView
方法,它会扩展片段的布局并将其从活动返回到片段管理器。
然后通常会将onActivityCreated
用于代码的其余部分(或其他任何需要的代码)。
进行更改以正确使用片段可能会或可能不会解决您的所有问题,因为我看到您在布局中使用某种自定义小部件,问题也可能存在。