首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Drawable 陣列索引空指針:未初始化 RelativeLayout 導致 setBackgroundResource 失效

     編輯:程式設計綜合問答

陣列 picItems 本身正常,但 RelativeLayout relative 未經 findViewById 初始化即呼叫 setBackgroundResource,導致空指標異常。

錯誤代碼

RelativeLayout relative; // 未初始化
int[] picItems = {R.drawable.a, R.drawable.b, R.drawable.c};
// ...
relative.setBackgroundResource(picItems[index]); // NPE

修正

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    relative = findViewById(R.id.layout); // 先綁定
    // 後續使用 relative 安全
}

除錯技巧

  • 堆疊追蹤指向 setBackgroundResource 行,檢查該行前是否已 findViewById。
  • 使用 LayoutInspector 或斷點確認 relative 非 null。
  • Kotlin 可用 by lazy { findViewById(...) } 延遲初始化避免此類錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved