【发布时间】:2019-07-17 16:51:24
【问题描述】:
我有两个意图。 主要活动:包含回收站视图,显示一些默认项目以确保其正常工作。一个 ArrayList 设置为 Recycler View,即包含那些默认项的 List。
Second Activity:一个按钮,将收集同一页面上的数据并将数据放入一个对象中,该对象将被添加到设置为 Main Activity 的 Recycler View 的 Arraylist 中。
我制作了一些 Toast Message 以确认第二个 Activity 中的对象已添加到 ArrayList。
//My item
public item(int id, int money, String date, String category, String
description) {
this.id = id;
Money = money;
Date = date;
Category = category;
Description = description;
}
然后我创建了一个类来控制我的 ArrayList
//Building ArrayList
public Util(){
Log.d(TAG, "Util: Start");
if(IncomeItems==null){
IncomeItems = new ArrayList<>();
initIncomeItems();
}
}
private static void initIncomeItems() {
Log.d(TAG, "initIncomeItems: initI");
int Iid = 0
int Money= 0;
String Date = "";
String Category= "";
String Description = "";
Iid++;
IncomeItems.add(new item(Iid, 10000, "8-Jun-2019", "Salary",
"Salary"));
}
//adding item to ArrayList
public boolean addIncomeItem(item Item){
Log.d(TAG, "addIncomeItem: addI");
return IncomeItems.add(Item);
}
//getting ArrayList
public static ArrayList<item> getIncomeItems() {
Log.d(TAG, "getIncomeItems: getI");
return IncomeItems;
}
我将我的 ArrayList 设置为 Main Activity 中的 RecyclerView
//Recycler View in Main Activity
RVAdapter IncomeAdapter = new RVAdapter(this);
Util util = new Util();
MainIncomeRV.setAdapter(IncomeAdapter);
MainIncomeRV.setLayoutManager(new GridLayoutManager(this, 1));
IncomeAdapter.notifyDataSetChanged();
IncomeAdapter.setItems(util.getIncomeItems());
在第二个活动中,我有一个按钮可以通过从用户那里获取数据来创建一个新项目。(我在这里跳过了一些小部件启动代码)。最后,我将项目添加到设置为 Main Activity 中的 Recycler View 的 ArrayList 中。
//Button in 2nd Activity
SubmitIncomeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Date = date_day.getSelectedItem().toString() +"-" +
date_month.getSelectedItem().toString() + "-" +
date_year.getSelectedItem().toString();
id++;
item IncomeItem = new item(id,
Integer.parseInt(Money.getText().toString()), Date,
IncomeCategories.getSelectedItem().toString(),
Description.getText().toString());
util=new Util();
util.addIncomeItem(IncomeItem);
Toast.makeText(IncomePage.this, IncomeItem.toString(),
Toast.LENGTH_SHORT).show();
Toast.makeText(IncomePage.this,
String.valueOf(util.getIncomeItems().size()), Toast.LENGTH_SHORT).show();
Log.d(TAG, "onClick: addI");
}
});
}
没有发生错误,但是在第二个Activity中创建的item(IncomeItem)无法添加到Main Activity中。
当我返回主活动时,我希望该项目将显示在回收器视图中。是我使用返回按钮返回主 Activity 的问题吗?
【问题讨论】:
-
不应该是
IncomeItem item吗? -
@JohnJoe,“item”是类名,“IncomeItem”是我要创建的对象,因此我认为“item IncomeItem”应该是正确的。
-
你如何从 secondActivity 到 mainActivity?通过按返回按钮或点击
submitIncomeBtn? -
我尝试按下后退按钮,然后我使用 OnBackPressed() 方法创建了另一个后退按钮,均无效。 submitIncomeBtn 现在只是用于将项目添加到 ArrayList。
标签: java android android-recyclerview