【发布时间】:2021-10-03 00:00:09
【问题描述】:
我有一个在我的应用程序中向数据库添加对象的活动,并且数据库显示在调用AddActivity 的活动中。我的问题是更新数据库后需要刷新 ArrayList,但我无法在我的AddActivity 中访问它。所以我想在AddActivity结束时跟踪MainActivity,然后调用刷新function。现在我尝试使用下面的代码,这是可行的,但我认为这不是我应该这样做的方式,我觉得有更好的功能,但我找不到。
onClickListener内MainActivity中的代码:
Intent intent = new Intent(mContext, ExerciseAdd.class);
startActivityForResult(intent, 1);
AddActivity 中的代码也在 onClickListener 中:
dataBaseAccess = ExercisesDataBaseAccess.getInstance(getApplicationContext());
dataBaseAccess.open();
dataBaseAccess.addExercise(nameString, typeString, "NULL");
dataBaseAccess.close();
Intent intent = new Intent();
intent.putExtra("result", 1);
setResult(1, intent);
finish();
以及MainActivity中的refhresing函数:
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
dataBaseAccess.open();
exercises = dataBaseAccess.getAllExercises();
dataBaseAccess.close();
adapter.setExercises(exercises);
adapter.notifyDataSetChanged();
}
或者也许有什么方法可以将对ArrayList 的引用传递给AddActivity?我很难找到有关此的任何信息
【问题讨论】:
-
删除了
android-studio标签,因为该标签用于处理与 Android Studio 产品相关的问题。您的问题是一个通用的 Android 问题,与 Android Studio 产品无关。
标签: java android database android-intent android-activity