1

當我嘗試使用AsyncTask刪除節目時。我想在AsyncTask完成後調用finish()並返回一個Intent和結果。錯誤:活動結果片段索引超出範圍: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 2014-10-19 15:25:40

回答

0

我現在通過使用工作解決了它。 我現在在onResume()中重新加載我的AsyncTask,而不是從arraylist中移除一個項目並調用adapter.notifyDataSetChanged()。但它不是最好的解決方案。

0

如果您在另一個片段中使用片段。你應該打電話

getParentFragment().startActivityForResult(i, SELECT_PICTURE);