Android在OnCreate中获取到的控件为空

奔跑de小猪 发布于 2014/09/11 19:14
阅读 1K+
收藏 0

       各位好,我刚刚接触Android,用的最新版本的SDK开发工具,我想在onCreate函数中获得控件,例如ImageView控件。但获取到的总为空,也不能添加任何的监听事件,老是报空指针错误!请问这是哪里出现的错误呀,求解释,谢谢!

例如向下面的代码获得的组件就是为空的,我是直接在onCreate函数中获取的,我看着都没有什么错误。会不会是我的开发工具的问题呀:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
        
        ImageView view = (ImageView) findViewById(R.id.imageView1);
        if(view == null) {
             Toast.makeText(MainActivity.this, "View为空!", Toast.LENGTH_LONG);
        }else{
             Toast.makeText(MainActivity.this, "View不为空!", Toast.LENGTH_LONG);
        }

}

加载中
0
亓斌哥哥
亓斌哥哥
至少贴一下代码吧。。
奔跑de小猪
已经将获去组件的代码贴上去了,麻烦看一下吧!
0
码农明明
码农明明

 findViewById后面的id对吗,去检查清楚。

奔跑de小猪
假如我有一个按钮,对此按钮设定一个onclick函数,在这个函数中获取ImageView的话就可以获得该ImageView。代码如下: public void pre(View v){ ImageView view = (ImageView) findViewById(R.id.imageView1);//此处不为空 ...... }
奔跑de小猪
id没有错误。我的layout布局文件夹下面有两个文件:activity_main.xml和fragment_main.xml。加载的布局文件语句是:setContentView(R.layout.activity_main); 但是在activity_main.xml中都没有其他的代码,请问是不是这里的问题呀!
0
8enet
8enet
最新版本是在 PlaceholderFragment里面找控件吧
奔跑de小猪
谢谢,根据你的提示,在网上找到了解决办法!
0
吴笑笑
获取不到很正常吧- -,你的那个imageview应该是在fragment里面,你在外面activity这么获取肯定获取不到吧
奔跑de小猪
谢谢,根据您的提醒,在网上找到了相关的解决办法!
0
奔跑de小猪

引用来自“8enet”的评论

最新版本是在 PlaceholderFragment里面找控件吧

如何响应在fragment_main.xml中的控件:

引用的答案链接  http://tieba.baidu.com/p/3089913530


0
奔跑de小猪
问题已解决,参考链接如下 

http://tieba.baidu.com/p/3089913530

0
思落羽
思落羽
检查一下你控件是在Fragment还是在Activity的xml中
奔跑de小猪
谢谢,这个问题暂时已经解决了,还是要谢谢你!
返回顶部
顶部