初學者常在 onCreate 中直接呼叫 listview.setAdapter(simp_adapter) 卻忘記先實例化 ListView 與 SimpleAdapter,導致 NullPointerException。錯誤程式碼典型特徵:
listview.setAdapter(simp_adapter); // listview 尚未 findViewById
simp_adapter = new SimpleAdapter(...); // adapter 在 setAdapter 之後才 new
setContentView(R.layout.activity_main);listview = (ListView) findViewById(R.id.xxx); (xxx 為 XML 中 ListView 的 id)simp_adapter = new SimpleAdapter(this, getData(), ...);listview.setAdapter(simp_adapter);getData() 內部不應依賴 datalist 成員變數已初始化,建議在方法內部 new ArrayList<>() 並回傳。simp_adapter.notifyDataSetChanged() 而非重新 setAdapter。