我的问题可能很简单,我太傻了。 我在layout.xml文件中定义了一个LinearLayout,并希望在代码中设置背景drawable。
layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linlay"
android:orientation="vertical"
android:layout_width="fill_parent">
</LinearLayout>
的.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ln = (LinearLayout) this.findViewById(R.id.linlay);
setContentView(ln);
ln.setBackgroundDrawable(getResources().getDrawable(R.drawable.wallpaper));
}
如果我运行应用程序,它说应用程序意外停止。 有任何想法吗?
答案 0 :(得分:13)
您必须为资源的活动设置布局
setContentView(R.layout.my_layout);
然后你可以调用findViewById()
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout); // add this code
LinearLayout ln = (LinearLayout) this.findViewById(R.id.linlay);
ln.setBackgroundDrawable(getResources().getDrawable(R.drawable.wallpaper));
}
在您的情况下,您可以通过添加到LinearLayout
来简单地在xml资源文件中设置壁纸android:background="@drawable/wallpaper"
答案 1 :(得分:2)
您没有加载布局
在使用findViewById
之前,需要在xml布局上加载setContentView(R.layout.aLayout);