【问题标题】:onActivityResult() not called in fragment [duplicate]片段中未调用 onActivityResult() [重复]
【发布时间】:2014-05-22 14:17:38
【问题描述】:

我有一个MainActivitytabhost 和一个fragment。我startActivityForResult 来自fragment,在完成该活动中的任务后,我执行finish 并将结果控制返回到前一个片段。我已经探索了herehere 的答案。但它们似乎都不适合我。

这是我的fragment 代码:

images[j].setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(getActivity(), MovieDetail.class);
                intent.putExtra("movie", movieObj);
                startActivityForResult(intent, 1);
            }
        });

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        Log.v("activity result", "called");
        if (requestCode == 1) {
            if(resultCode == getActivity().RESULT_OK){
                if (data.getBooleanExtra("movieDeleted", true)){
                    TabMovies.refresh();
                }
//                  refresh();
            }
            if (resultCode == getActivity().RESULT_CANCELED) {
                //Write your code if there's no result
            }
        }
    }

完成activity:

Intent returnIntent = new Intent();
returnIntent.putExtra("movieDeleted",true);
setResult(RESULT_OK,returnIntent);
finish(); 

这是我的MainActivity

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        Log.v("parent", "called");
        super.onActivityResult(requestCode, resultCode, data);
    }

我还给MainActivity 中的onActivityResult() 打了一个super 电话。但是在activity 结束后没有一个方法被调用..

【问题讨论】:

  • 你做了 super.startActivityForResult() 吗?
  • mainactivity?
  • 片段中没有。你现在已经完成了 startActivityForResult(intent, 1);你能做 super.startActivityForResult(intent, 1);再试一次?
  • 没有在fragment中调用super..
  • 看到我编辑了我的评论

标签: android android-fragments android-tabhost


【解决方案1】:

试试getActivity().startActivityForResult()

【讨论】:

  • 不工作。这就是我为activity 设置意图的方式:Intent intent = new Intent(getActivity(), MovieDetail.class);
  • 在更新您的答案以说明 OP 信息时,您还可以对其进行增强以解释 为什么 您的解决方案有效。这将有助于人们稍后找到您的答案。
猜你喜欢
  • 2013-12-02
  • 2018-09-17
  • 2011-09-03
相关资源
最近更新 更多