LayoutInflater调用inflate时取不到值

xj4920 2011-12-06 03:43:48
我在另一个包下写了个BaseAdapter的子类,在getView方法中调用inflate方法,layout的值取不到

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=inflater.inflate(R.layout.list_element, null);
}
}

说list_element cannot be resolved or is not a field.我在layout文件夹下已经写了list_element.xml布局文件了,而且R类里也有list_element这个静态常量了,可他就是取不到。
我发现,我把这个类写成某个Activity的内部类的时候,就可以取到了,这是为什么呢?我看其他人的源码都是可以写在其他类里的。
...全文
278 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
假装是AA 2014-09-01
  • 打赏
  • 举报
回复
刚遇到这个问题,因为类中导入的是android.R而不是gen包中的那个R文件,所以导致找不到layout 如六楼所说,解决了这个问题!
哎,真难 2014-07-09
  • 打赏
  • 举报
回复
不知道你inflater是怎么实例化的,在构造函数里面实例化inflater,LayoutInflater mInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
woshishuinilai 2014-07-08
  • 打赏
  • 举报
回复
我也碰到过这个问题,最后发现是因为在自定义的adapter类中并没有把R文件import进去。因为R文件所在的package是和mainActivity包相同名字,但是和自定义adapter包不同
fhhdg 2012-05-14
  • 打赏
  • 举报
回复
应该不会这样子,请贴出有问题的那个类
Dustin 2012-05-14
  • 打赏
  • 举报
回复
我也遇到这个问题了,我是在自定义组件时遇到的,我写了一个类继承了linearlayout这个类,然后再类里LayoutInflater.from(context).inflate(R.layout.customcomponent, null)时,提示我customcomponent cannot be resolved or is not a field,同求解
zyw123 2011-12-06
  • 打赏
  • 举报
回复
你的inflater没有初始化。
加上: LayoutInflater inflater = getLayoutInflater();
xj4920 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shan_zha 的回复:]

因为你的context生命周期,当你是内部类时,context还存在,所以你可以用inflate()方法,但是如果在另外一个包得话,你的context已得不到
[/Quote]

但是我在同一个包下,不同的类文件里也取不到值。
别人写的代码里,这样做就不会报错。
Shan_zha 2011-12-06
  • 打赏
  • 举报
回复
因为你的context生命周期,当你是内部类时,context还存在,所以你可以用inflate()方法,但是如果在另外一个包得话,你的context已得不到

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧