3

我正尝试为我的类别列表创建自定义适配器。出于某种原因,我无法访问我的category_item布局,当我试图夸大它。这里是我的代码:无法访问我的自定义ArrayAdapter中的R.layout.mylayoutname

public class CategoryAdapter extends ArrayAdapter<Category> { 

    LayoutInflater mInflater; 
    List<Category> list; 

public CategoryAdapter(Context context, int resource, int textViewResourceId, List<Category> objects) { 
    super(context, resource, textViewResourceId, objects); 

    mInflater = LayoutInflater.from(context); 
    list = objects; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 

    final ViewHolder holder; 

    if(convertView==null){ 

     convertView=mInflater.inflate(***resource***, null); 
     holder = new ViewHolder(); 

    } 

    return convertView; 
} 

// Declaring new class ViewHolder 
class ViewHolder{ 
    TextView category_name; 
} 

凡说resource我应该能够访问我category_item.xml布局 - R.layout.category_item。但由于某种原因,我没有在列表中看到它,我无法访问它。事实上,我没有在列表中看到我的任何布局。

为什么会发生这种情况,它如何解决?

+2

检查你是否有正确的(或任何)R.java导入 – 2013-03-15 12:15:35

+1

在这里添加你在Activity类中调用适配器的行。 – Sajmon 2013-03-15 12:17:32

+0

@StefandeBruijn是的,显然我导入了错误的R类。不知道它是如何发生的...谢谢!当你第一次回答我的问题时,你能否将它作为答案发布,以便我可以接受它?再次,非常感谢! – Igal 2013-03-15 12:23:34

回答

12

导入您的packagename.R文件,它会工作。您可能导入了android.R。由于您的资源存在于您的应用程序包中,只需纠正它,它就会起作用。

android.R指代sdk资源。

+0

谢谢!是的,这是问题所在。 – Igal 2013-03-15 12:25:39

+0

是的,我们有时会陷入这些小问题! – 2013-03-15 12:28:57

3

这可能是你的android进口资源包android.R

确保您导入了包资源com.yourpackagename.R。这应该可以解决你的问题。

+0

是的,非常感谢你! – Igal 2013-03-15 12:27:31

2

检查您的代码,我认为您已在代码中导入android.R。去掉它。

+0

非常感谢,问题解决! – Igal 2013-03-15 12:27:54

1

项目 - >清洁 这重新生成该R文件,这也应该工作。