错误:活动结果片段索引超出范围:0x2fffe



当我试图用AsyncTask删除一个节目时。我想在AsyncTask完成后调用finish(),并返回带有结果的Intent。

来自活动:

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();
                    }
                }
            }
        }
    }

但它似乎并没有贯穿这个onAcitivityResult()。正如你所看到的,我已经记录了onActivityResult(),但我没有任何日志。我唯一得到的是:10-19 16:21:44.631: W/FragmentActivity(27672): Activity result fragment index out of range: 0x2fffe

我现在通过使用变通方法修复了它。我现在在onResume()中重新加载AsyncTask,而不是从arraylist中删除一个项并调用adapter.notifyDataSetChanged()。但这不是最好的解决方案。

如果在另一个片段中使用一个片段。你应该打电话给

getParentFragment().startActivityForResult(i, SELECT_PICTURE);

最新更新