在android中使用admob完全自定义视图

时间:2011-10-21 03:15:18

标签: android layout view admob

我在理解Layouts时遇到了真正的问题。我试图将admob放入我的应用程序,但直到这一点,我没有理由使用布局。我会告诉你我在活动课上的内容。

    public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    View tfview = new TFView(this);
    setContentView(tfview);}

然后我继续用Java编写我的应用程序,而不使用任何XML。如何将此视图和Admob放到布局上?我尝试将这两个添加到布局中:

LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);
    AdView adView = new AdView(this, AdSize.BANNER, pubID);
    layout.addView(adView);
    layout.addView(tfview);
    AdRequest request = new AdRequest();
    request.setTesting(true);
    adView.loadAd(request);   

但我收到某种空指针异常错误。任何人都可以帮忙吗?

提前致谢 -Derek

3 个答案:

答案 0 :(得分:1)

感谢您的所有回复。我最终只是阅读了一些其他类似问题的回答,并以编程方式构建了我的布局(如果那是一个单词)。基本上我这样做了:

 AdView adView = new AdView(this, AdSize.BANNER, pubID);

    FrameLayout layout = new FrameLayout(this);
    FrameLayout.LayoutParams gameParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
            FrameLayout.LayoutParams.FILL_PARENT);
    FrameLayout.LayoutParams adsParams =new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 
            FrameLayout.LayoutParams.WRAP_CONTENT, android.view.Gravity.BOTTOM|android.view.Gravity.CENTER_HORIZONTAL); 
    layout.addView(tfview, gameParams);
    layout.addView(adView, adsParams);
    setContentView(layout);
    AdRequest request = new AdRequest();
    request.setTesting(true);
    adView.loadAd(request);     

它就像一个魅力。再次感谢大家。

-Derek

答案 1 :(得分:0)

确保R.id.linearLayout实际上是一个有效的ID,对应于您要添加admob内容的视图。

如果你想更好地处理XML Layouts(我建议你这样做,因为它们确实是你应该在android中做布局的方式),请查看HelloViews tutorials

答案 2 :(得分:0)

假设您的xml文件在main.xml文件夹中为res/layout,请将内容视图设置为main.xml文件。

    setContentView(R.layout.main);

设置contentView定义从中提取资源的位置。您对Kurtis的答案的评论中的xml文件看起来很好,但您必须将xml文件设置为contentView才能引用其布局。这就是为什么你找不到那个视图,所以你的layout变量为null,最终导致异常。