自定义ListView适配器nullPointer问题

时间:2011-01-11 10:41:05

标签: java android listview

我正在尝试设置列表视图的第一个和最后一个元素,使其背景与中间的所有内容不同。我已经创建了我的自定义适配器.xml文件,并且当我在其中静态设置所有内容以使每一行具有相同的样式时,它可以正常工作。截至目前,我只是想改变第一个元素。我想我得到了nullPointerException,因为我没有正确引用LinearLayout我想要更改背景。这是我的代码:

for (int i = 0; i < categories.size(); i++){
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("name", categories.get(i));
            LinearLayout linear = (LinearLayout)findViewById(R.id.linearLayout1);
            if(i == 0){
                linear.setBackgroundResource(R.drawable.background);
                Log.v("First Element", "First");
            }
            else{
                linear.setBackgroundResource(R.drawable.background);
                Log.v("Not First Element", "Not First");
            }
            mylist.add(map);
        }

我认为我的问题是由于R.id.linearLayout1引用不在此活动的主xml文件中,因此如何获得正确的引用。如果不是这种情况,那么我该如何为listView的顶部和最后一个元素设置不同的背景?

1 个答案:

答案 0 :(得分:0)

你应该使用“inflate”来获得你的布局。

例子(如果我没弄错的话,不能在这里试试)

LinearLayout linear = activity.getViewInflate().inflate(linearLayout1,null, null);