1
我是Android編程的新手,因此您需要耐心等待。由於ArrayAdapter的Array爲null導致應用程序崩潰
我試圖從解析服務器中檢索一列並將其顯示在ListView中。到目前爲止,我已經產生了下面的代碼,但是我遇到了一個問題。在我的for循環中,它應該從「Absences」類的「name」列中獲取每個項目,並將其添加到名爲「teachers」的ArrayList中。
問題是應用程序崩潰,因爲該數組爲null(在打印到日誌中),因此無法將其分配給ArrayAdapter。我相信這樣做的原因是在arrayadapter代碼執行後的一段時間內,對象會在背景中被取出,這意味着它試圖顯示一個空數組。
我假設我需要以某種方式推遲它 - 關於我該怎麼做的任何想法?
的onCreate()方法中受影響的代碼:
final ArrayList<String> teachers = new ArrayList<String>();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Absences");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if(e == null){
for(ParseObject object : objects){
String name = String.valueOf(object.get("name"));
Log.i("teacherName", name);
teachers.add(name);
}
} else {
Log.i("Get data from parse", "There was an error getting data!");
e.printStackTrace();
}
}
});
Log.i("teacherOutput", teachers.toString());
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, teachers);
ListView lv = (ListView)findViewById(R.id.listView);
lv.setAdapter(arrayAdapter);
提前非常感謝!
我仍然得到以下錯誤對象引用「 –
你的佈局文件中可能沒有帶有id ='listView'的'ListView'? – Divers
嗯,就是這樣 - 將ListView放在錯誤的佈局文件中!謝謝! –