我想用setBackgroundResource()函数设置背景图片,但总是报空指针异常,希望大家帮我看看什么地方有问题
public class BackgroundActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        LinearLayout layout = (LinearLayout)this.findViewById(R.layout.main);
        layout.setBackgroundResource(R.drawable.background);
        
        
    }
}

解决方案 »

  1.   

    你新实例化了一个对象再调用新对象的一个方法,当然不能修改本Activity的背景啦,这根本就是两个独立的对象。你可以用getWindows()函数获取当前Activity的的layout对象,再调用setBackgroundResource(id);就可以!你也可以用修改layout的XML的方法设置背景,当然用代码修改更加简便。这是图例,忽略这个不堪入目的图片吧,随便找的……
      

  2.   

    LinearLayout layout = (LinearLayout)this.findViewById(R.layout.main);
    这句代码有问题。应该查找xml中定义的LinearLayout 的id
      

  3.   


    本来layout就有ID了,不用定义。
    他明显就是调用自己新实例化那个对象的setBackgroundResource(id);
    肯定报错啦!
      

  4.   

    谢谢大家,尤其是Ikaros_android的回答,对我帮助很大!在这里再像大家请教一下学习android的方法,我发现android的方法太多了,搞的很乱,我也不是系统的学习,是用到什么就去查什么,弄的乱乱的。而且,android的很多类的继承关系搞的不是很明白,太乱,大家有什么好的学习方法和经验嘛?给一些好的建议也好!我自己想了一个办法,是这样的,就是先去需要什么就学什么,争取记住一些常用的,现在乱点没事,然后最后总结的时候去看google的官方文档,从头到尾看,这样可能就会和以前学习的知识联系起来了。大家有什么建议吗?