将项目添加到另一个活动

时间:2018-04-20 07:58:49

标签: java android android-recyclerview

我想点击一个按钮,将一堆新对象添加到另一个活动的回收站视图中。

我有活动A(食谱页面)和活动B(购物清单)。我在活动A中有一个菜单按钮,用于将一个数组(成分)的所有项目添加到活动B的Recycler View ArrayList。

我在活动A中有一个循环来遍历数组的每个成分:

for (int x = 0; x < recipeIngredients.length; x++) {
     ShoppingList.insertItem(recipeIngredients[x]);

}

我在活动B中使用的一个方法,用于将单个项目添加到回收站视图中。但是当在活动A(如上所述)中调用时,我得到空对象引用。

购物清单活动:

private RecyclerView mRecyclerView;
public RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
public static ArrayList<ShoppingItem> mShoppingList;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_shopping_list);

    mRecyclerView = findViewById(R.id.shopping_listView);
    mRecyclerView.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(this);
    mAdapter = new ShoppingListAdapter(mShoppingList);

    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

}

public void insertItem(String ingredient) {
    mShoppingList.add(new ShoppingItem(ingredient));
    mAdapter.notifyDataSetChanged();
}

1 个答案:

答案 0 :(得分:1)

我在活动B中声明了一个arraylist:

static ArrayList<String> listItems = new ArrayList<String>();

添加了字符串'成分',用于在活动A中创建项目给arraylist:

ShoppingList.listItems.add(ingredient);

然后在活动B的oncreate中,将arraylist中的任何项添加到购物清单并通知适配器:

for(String s : listItems) {
        mShoppingList.add(new ShoppingItem(s));
        mAdapter.notifyDataSetChanged();
    }