當我使用它時,我對這個適配器元素(NotifyDataSetChanged)有點困惑,因爲我的listview沒有更新。Android NotifyDataSetChanged和BaseAdapter
我的工作場景: 首先創建了一個void,以便無論何時更新listview的項目上的某些東西,我都可以再次調用我的void。
private void bindOrderListSorted(String sort){
orderList = new ArrayList<Order>();
mySQLiteAdapter = new SQLiteAdapter(context);
mySQLiteAdapter.openToRead();
String selectQuery = "MY QUERY...";
Cursor cursor =mySQLiteAdapter.read(selectQuery);
while(cursor.moveToNext())
{
Order order = new Order();
order.orderdDesc = cursor.getString(0);
order.orderitemCode = cursor.getString(1);
order.orderitemID = cursor.getString(2);
order.orderPrice = cursor.getString(3);
order.qtyOrdered = cursor.getString(4);
order.stocksQty = cursor.getString(5);
orderList.add(order);
}
cursor.close();
mySQLiteAdapter.close();
orderAdapter =new OrderListAdapter(this, orderList,context, sort);
listViewSearchPanel.setAdapter(orderAdapter);
}
關於這個主要問題是,每當我更新我的數據庫的東西,稱之爲「bindOrderListSorted」我的列表視圖更新,但預期它會再次重新綁定的列表視圖的位置再次進入零。
這就是我的邏輯之前,但隨後我發現,如果我有一長串項目?這不會是合適的和用戶友好的,因爲用戶必須再次向下滾動,找到項目(S),他/她希望更新
所以香港專業教育學院瞭解到NotifyDataSetChanged,再次創造了一個空白爲
private void NotifyDataChangedOrderListSorted(String sort){
orderList = new ArrayList<Order>();
mySQLiteAdapter = new SQLiteAdapter(context);
mySQLiteAdapter.openToRead();
String selectQuery = "MY QUERY... SAME AS BEFORE";
Cursor cursor =mySQLiteAdapter.read(selectQuery);
while(cursor.moveToNext())
{
Order order = new Order();
order.orderdDesc = cursor.getString(0);
order.orderitemCode = cursor.getString(1);
order.orderitemID = cursor.getString(2);
order.orderPrice = cursor.getString(3);
order.qtyOrdered = cursor.getString(4);
order.stocksQty = cursor.getString(5);
orderList.add(order);
}
cursor.close();
mySQLiteAdapter.close();
orderAdapter =new OrderListAdapter(this, orderList,context, sort);
orderAdapter.notifyDataSetChanged();
}
並且每當我更新一些東西時調用「NotifyDataChangedOrderListSorted」。
我的主要問題是我的listview沒有更新。我很確定我的orderList具有更新的值,因爲使用調試器和斷點我期望的數據是預期的。這是爲什麼?
請隨時推薦建議或意見。如果你想看到我的基本適配器請把它說出來..
在此先感謝
我使用編號2 @Sam – Androyds
感謝您的回答。它正在工作。我讀了光標適配器以供將來參考..感謝您解決我的問題 – Androyds
很高興我能幫助,祝你好運! – Sam