Я прочитал следующие статьи,
Передача данных назад к предыдущему фрагменту из текущего фрагмента
Передача данных между фрагментами в View Pager
Как перенести данные из одного фрагмента в другой фрагмент android
Android: лучший подход для передачи данных между фрагментами viewpager
Мне не удалось выяснить, как сообщить родительскому фрагменту, чтострока была удалена в дочернем фрагменте.Мой родительский фрагмент состоит из представления переработчика с несколькими строками.Я хочу перерисовать (??) представление переработчика без удаленной строки.Любая помощь будет оценена.
Это мой репозиторий Github: https://github.com/manoflogan/android-projects/blob/menu/02-Criminalntent/
Это мой пример использования:
Когда приложение запущенопользователь увидит пустой вид. Изображение пустого вида
Если они хотят добавить новый объект преступления, они будут нажимать / нажимать на значок +
в строке меню, как виднона предыдущем изображении
Это действие создает намерение, сопоставленное с другим действием https://github.com/manoflogan/android-projects/blob/menu/02-Criminalntent/app/src/main/java/com/krishnanand/criminalintent/CrimeListFragment.java#L67.
Это загружает действие, в котором ViewPagerопределяется и в котором связан фрагмент https://github.com/manoflogan/android-projects/blob/menu/02-Criminalntent/app/src/main/java/com/krishnanand/criminalintent/CrimePagerActivity.java#L60. Объект преступления создается, как показано здесь.
На рисунке показан созданный объект преступления. Создан объект преступления .Это показывает вид, когда пользователь нажимает кнопку возврата, как показано ниже. Несколько строк, созданных и отображаемых после нажатия кнопки возврата
Когда элемент удален, я хочу сообщить родительскому фрагменту, что строка в представлении переработчика была удалена.Я пытаюсь вернуться к фрагменту с Recycler View здесь.
https://github.com/manoflogan/android-projects/blob/menu/02-Criminalntent/app/src/main/java/com/krishnanand/criminalintent/CrimeFragment.java#L81 Это метод, в котором я пытаюсь обновить утилизатор, чтобы строка была удалена.https://github.com/manoflogan/android-projects/blob/menu/02-Criminalntent/app/src/main/java/com/krishnanand/criminalintent/CrimeListFragment.java#L110
Если у меня N строк, и если я хочу удалить любую строку, кроме последней, приложение вылетает со следующей ошибкой.
--------- начало аварии 2018-11-23 17: 40: 49.932 13876-13876 / com.krishnanand.criminalintent E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.krishnanand.criminalintent, PID: 13876 java.lang.IndexOutOfBoundsException: Обнаружено несоответствие.Неверный адаптер держателя вида positionViewHolder {6d1120f position = 1 id = -1, oldPos = 1, pLpos: -1 scrap [attachScrap] tmpDetached no parent} android.support.v7.widget.RecyclerView {4220554 VFED ..... ...... ID 0,0-1080,1584 # 7f070032 приложение: id / crime_recycler_view}, адаптер: com.krishnanand.criminalintent.CrimeListFragment$CrimeAdapter@3140cfd, макет: android.support.v7.widget.LinearLayoutManager@42ccdf2, контекст: com.krishnanand.criminalintent.CrimeListActivity@95fdd1a по адресу android.support.v7.widget.RecyclerView $ Recycler.validateViewHolderForOffsetPosition (RecyclerView.java:5715) в android.support.v7.widget.RecyclereBe ReReGlerDeBellingReHellingReg_ReclerDayBence: RecyclerDeBell_ReclerDayPlay_ReclerDayPlay_ReclerDayPlay Reception5898) на android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5858) на android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5854) на android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.java:2230) в android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1557) в android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1517) в android.support.v7.widget.LinearLayoutManager.renayanManagerMonLayManagerMonLayManagerMonLayManagerMonLayManagerMonLayManagerMonLayManagerMonLayO.support.v7.widget..java: 1877)на android.support.v7.widget.RecyclerView $ 1.run (RecyclerView.java:407) на android.view.Choreographer $ CallbackRecord.run (Choreographer.java:949) на android.view.Choreographer.doCallbacks (Choreographer.java:761) на android.view.Choreographer.doFrame (Choreographer.java:693) на android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:935) на android.os.Handler.handleCallback (Handler.java:873)android.os.Handler.dispatchMessage (Handler.java:99) в android.os.Looper.loop (Looper.java:193) в android.app.ActivityThread.main (ActivityThread.java:6669) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:493) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)