簡體   English   中英

自定義ListView適配器nullPointer問題

[英]Custom ListView Adapter nullPointer problem

我試圖設置列表視圖的第一個和最后一個元素,使其背景與中間的所有元素都不同。 我已經創建了自定義適配器.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的頂部和最后一個元素設置不同的背景?

您應該使用“膨脹”來獲取布局。

示例(如果我沒記錯的話,就不能在這里嘗試)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM