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 に答える