Android - 以XML格式定义的AddContentView

时间:2014-07-24 00:56:59

标签: java android

如果我们想通过XML创建视图,

AdMob documentation to integrate it on Android会指示创建以下XML:

 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
  <com.google.android.gms.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         ads:adUnitId="MY_AD_UNIT_ID"
                         ads:adSize="BANNER"/>
</LinearLayout>

并将其设置为活动的内容视图:

public class BannerExample extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Look up the AdView as a resource and load a request.
    AdView adView = (AdView) this.findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
  }
}

但在我的情况下(我使用cocos2d-x 3)我已经有了Activity的子类,我只需要将该视图添加到我现有的内容中,而不是像上面代码中那样设置内容视图。我如何添加内容查看XML中定义的视图?

2 个答案:

答案 0 :(得分:1)

致电时。

setContentView(R.layout.main);

在onCreate中,它会自动为您提供视图,以便您可以开始将视图从xml分配给您自己的变量,如下所示:

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

确保您在顶部定义的xml布局与setContentView()中传递的xml布局相同。在这种情况下,R.layout.main应该包含一个ID为adView类型的视图。

换句话说,R.layout.main应该是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
  <com.google.android.gms.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         ads:adUnitId="MY_AD_UNIT_ID"
                         ads:adSize="BANNER"/>
</LinearLayout>

如果你想要的是膨胀并使用主布局并添加AdView,你必须自己给视图充气并将其添加到主布局中的某个元素。 像这样:

RelativeLayout item = (RelativeLayout)findViewById(R.id.item);
View child = getLayoutInflater().inflate(R.layout.child, null);
item.addView(child);

参考文献: How to inflate one view with a layout

答案 1 :(得分:0)

您只需添加

即可
<com.google.android.gms.ads.AdView android:id="@+id/adView"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     ads:adUnitId="MY_AD_UNIT_ID"
                     ads:adSize="BANNER"/>

到现有的XML布局文件。