我在理解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
答案 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,最终导致异常。