onActivityResult () - это стандартная функция Android, которая вызывается после закрытия дочернего действия. Однако, похоже, он не закрывается полностью.
После того, как мое дочернее действие заканчивается, в родительском вызывается onActivityResult (). На этом этапе мое действие заключается в том, чтобы добавить контекст (через провайдера, без помощи) в новый класс, создаваемый родителем, с использованием информации, которую парцелла только что вернула мне для параметра @Assisted в этом новом классе. учебный класс.
Однако, несмотря на то, что метод final () вызывается для дочернего элемента, вводимый контекст - это не родительский элемент, а дочерний! Это убивает программу.
Как мне обойти это?
Вот код, который дает вам представление о том, что я делаю.
В родительском:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_NEW_EXERCISE)
{
if (resultCode == RESULT_OK)
{
EntityExercise exercise = (EntityExercise)data.getExtras().get("exercise");
addNewRoutineExerciseDetail(exercise);
//Toast.makeText(this, exercise.getName(), Toast.LENGTH_LONG).show();
}
}
}
public RoutineExerciseDetail addNewRoutineExerciseDetail(EntityExercise exercise)
{
RoutineExerciseDetail detail = detailFactory.create(exercise);
detail.setOnClickRelativeLayoutListener(mEditParamsOnClickListener);
return detail;
}
у ребенка:
View.OnClickListener mListenerReturnExercise = new View.OnClickListener()
{
@Override
public void onClick(View v) {
Intent resultIntent = new Intent();
resultIntent.putExtra("exercise", (EntityExercise)v.getTag()); //Assuming it's the tag
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
};
Параметры конструктора RoutineExerciseDetail:
@Inject
public RoutineExerciseDetail(ActivityBaseRoboOrm<DatabaseHelper> context, List<RoutineExerciseDetail> list,
@AddEditExercise TableLayout layout, @Assisted EntityExercise exercise)