我正在尝试设置列表视图的第一个和最后一个元素,使其背景与中间的所有内容不同。我已经创建了我的自定义适配器.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的顶部和最后一个元素设置不同的背景?
答案 0 :(得分:0)
你应该使用“inflate”来获得你的布局。
例子(如果我没弄错的话,不能在这里试试)
LinearLayout linear = activity.getViewInflate().inflate(linearLayout1,null, null);