现在的位置: 首页 > 综合 > 正文

No view found for id 0x7f05003c (*) for fragment PlaceholderFragment

2017年02月20日 ⁄ 综合 ⁄ 共 1546字 ⁄ 字号 评论关闭

在看视频学Android时,跟着视频写代码出现这个错误。视频是2012年4月份录制的,感觉到2014年后,发现项目的目录结构什么的都不太一样了。只好跟着瞎搞搞,找不到比较新的视频了。

1. 错误信息:

06-22 14:23:49.913: E/AndroidRuntime(10582): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jasmine.android_image2/com.jasmine.android_image2.MainActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f05003c () for
fragment PlaceholderFragment{4065e238 #0 id=0x7f05003c}

2. 说说解决方案:参考文章,http://blog.csdn.net/mengliluohua_151/article/details/9012305 点击打开链接

3. 我原来的代码是:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 创建ImageView对象
ImageView iv = new ImageView(this);
//为ImageView进行设置,讲图片设置给对象
iv.setImageBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.logo));
//将我们的ImageView对象放置到当前的View
this.setContentView(iv);
//不使用加载XML的布局管理器
// setContentView(R.layout.activity_main);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}

4. 后面发现点进去看那个R.id.container,发现是到R.layout.activity_main,就把下面那段代码注释了,程序就可以运行了,代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 创建ImageView对象
ImageView iv = new ImageView(this);
//为ImageView进行设置,讲图片设置给对象
iv.setImageBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.logo));
//将我们的ImageView对象放置到当前的View
this.setContentView(iv);
//不使用加载XML的布局管理器
// setContentView(R.layout.activity_main);

/*if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}*/
}

5. 程序可以正常运行了。

抱歉!评论已关闭.