我尝试作为练习的购物清单应用程序具有以下活动:
当我添加新的购物清单时(在活动#1中),ListView会完美刷新。但是,当我添加一个新的购物清单项目时(在活动#2中),我必须点击后退按钮并返回到我添加新项目的任何购物清单,以便所述项目显示在ListView中。
我已经尝试了以下帖子中的建议,但仍然没有运气ShoppingListActivity的ListView。
非常感谢任何有关此问题的帮助。
我用于添加新购物清单的代码......
ShoppingListApplication.java
public void insertShoppingList(ShoppingList shoppingList) {
assert(shoppingList != null);
long id = mDbAdapter.insertShoppingList(shoppingList.getName());
shoppingList.setId(id);
mShoppingLists.add(shoppingList);
}
ShoppingListMain.java
mNewListAddButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = mNewListName.getText().toString();
ShoppingList newList = new ShoppingList();
newList.setName(name);
mApp.insertShoppingList(newList);
mNewListName.setText("");
mListAdapter.notifyDataSetChanged();
}
});
将新商品添加到各个购物清单......
ShoppingListActivity.java
long id = mDbAdapter.insertListItem(mParentListId,
item.getDescription(), item.getQuantity(),
item.getUnitCost(), item.isPurchased(),
item.getNotes());
Log.i("ShoppingList", "New ID " + id);
item.setId(id);
mListItems.add(item);
mListAdapter.notifyDataSetChanged();
setListTotal();
答案 0 :(得分:3)
public void insertShoppingList(ShoppingList shoppingList) {
assert(shoppingList != null);
long id = mDbAdapter.insertShoppingList(shoppingList.getName());
shoppingList.setId(id);
mShoppingLists.add(shoppingList);
mListAdapter.notifyDataSetChanged();
}
您必须手动调用adapter.notifyDataSetChanged()。