我想用異步檢索數據的數據填充listView, 問題是如果我設置適配器,它會拋出空指針,因爲數據當我接收數據時,一個方法被執行,所以我可以調用這個方法來填充我的列表視圖?我嘗試傳遞佈局到這個類直接填充列表視圖時,數據收到但沒有工作(什麼都沒有發生)等待從數據庫異步獲取數據以填充列表視圖的方法的最佳方法
我認爲使用AsyncTask是一個好主意添加wait(),當這個「檢索器數據方法「是觸發呼叫通知(),但我不知道如何從另一個類的異類ASK呼叫通知()...
我也不知道如果asynktask是這樣做的最好方法,任何想法? 我使用retrofit2如果它可以幫助
列表視圖的代碼創建/填充
private List<TmOfsDTO> prepareList() {
List<TmOfsDTO> list;
try {
// Create list of items
ListObtainer listObtainer = new ListObtainer(this);
list = listObtainer.getTmOfsDTOList(user); // this method returns list of objects from DB
} catch (Exception e) {
list = null;
e.printStackTrace();
}
return list;
}
private void populateListView(List<TmOfsDTO> lista) {
// Build Adapter
OrderAdapter orderAdapter = new OrderAdapter(this, 0, lista);
// orderAdapter.getView()
Log.d("LSO", ".....");
// Configure listview
//View rootView = View.inflate(this, R.layout.activity_ordenes, null);
ListView listView = (ListView) findViewById(R.id.lvOrdenes);
listView.setAdapter(orderAdapter);
//listView.invalidateViews();
//listView.refreshDrawableState();
Log.d("LSO", ".......");
最後更新時間:
** 我在做正確的,當我recieving數據的通知,傳遞適配器,並調用: orderAdapter.notifyDataSetChanged();
但問題是我缺少添加每個項目: orderAdapter.add(orden);
前通知,現在似乎工作好**
加載程序,閱讀關於加載程序框架 – pskink
「問題是,如果我設置適配器,它會拋出空指針,因爲數據還沒有滿意」 - 這部分聽起來很可疑。如果你有一個有效的適配器,數據是否已經到達應該沒關係(只有在數據被添加到適配器之前,它纔會在列表中顯示任何內容) –
您能否通過相關的logcat部分?和匹配的代碼段? – QVDev