我想点击一个按钮,将一堆新对象添加到另一个活动的回收站视图中。
我有活动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();
}
答案 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();
}