0

我作为练习尝试的购物清单应用程序具有以下活动:

  1. ShoppingListMain - 购物清单列表
  2. ShoppingListActivity - 显示特定购物清单的所有购物清单项目的活动
  3. ListItemEditActivity - 一种允许编辑购物清单项目详细信息的活动

当我添加一个新的购物清单(在活动 #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();
4

1 回答 1

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()。

于 2012-06-11T04:44:52.643 回答