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

时间:2014-10-19 14:30:09

标签: android android-fragments android-asynctask onactivityresult

当我试图用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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

getParentFragment().startActivityForResult(i, SELECT_PICTURE);