1

Когда я пытаюсь удалить шоу с помощью AsyncTask. Я хочу называть finish() после завершения AsyncTask и возвращать намерение с результатом.Ошибка: индекс фрагмента результата операции за пределами допустимого диапазона: 0x2fffe

от деятельности:

new DeleteShowTask().execute(); 
Intent intent = new Intent(SeasonActivity.this, FragmentShows.class); // I'm not sure if this works 
intent.putExtra("tvdbid", tvdbId); 
setResult(DELETECODE, intent); 
finish(); 

затем в фрагменте я есть это:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Log.d("RESULTCODE", resultCode + ""); 
     Log.d("REQUEST CODE", requestCode +""); 
     if (resultCode == SeasonActivity.DELETECODE) 
     { 
      if (requestCode == SeasonActivity.SHOW) 
      { 
       String tvdbid = data.getStringExtra("tvdbid"); 
       for (int i = 0; i < adapter.getCount(); i++) { 
        SickbeardSerie serie = adapter.getItem(i); 
        if (serie.getTvdbId().equals(tvdbid)) 
        { 
         adapter.remove(serie); 
         adapter.notifyDataSetChanged(); 
        } 
       } 
      } 
     } 
    } 

Но, похоже, он doenst запустить через этот onAcitivityResult(). Я зарегистрировал onActivityResult(), как вы видите, но я не получаю никаких журналов. Единственное, что я получаю, это: 10-19 16:21:44.631: W/FragmentActivity(27672): Activity result fragment index out of range: 0x2fffe

+0

@luksprog Я пробовал это, но без результата. Кто-то сказал, что уже здесь, в этом вопросе, но, вероятно, удалил его. – Timmeeh93

ответ

0

Я исправил его пока, используя работу. Теперь я перезаряжаю свою AsyncTask в onResume() вместо того, чтобы просто удалять элемент из arraylist и вызывать adapter.notifyDataSetChanged(). Но это не лучшее решение.

0

если вы используете фрагмент в другом фрагменте. Вы должны позвонить по телефону

getParentFragment().startActivityForResult(i, SELECT_PICTURE);