1
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode,resultCode,data)

    if (requestCode == Selectedimage && resultCode == RESULT_OK && data != null) {

        Uri pickedImage = data.getData();
        Intent send= new Intent(Selection.this,Imagepage.class);
        send.putExtra("pickedImage",pickedImage.toString());
        startActivity(send);
    }
}

添加那条super.onActivityResult线有什么用?并且当我添加它时,它显示了一些错误。

4

3 回答 3

3

onActivityResult()有点像,onOptionMenuSelected()方式如下:

  1. 根据参数,您可以判断此函数调用是否应在此级别处理
  2. 如果是这样,处理它并返回(真)
  3. 如果没有,只需调用超类的实现

因此,在您的 Fragment 中onActivityResult(),您应该首先检查是否requestCode符合您之前设置的内容,如果符合,则处理数据并返回。如果没有,只需返回super.onActivityResult().

一个简单的示例可能如下所示:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case SELECT_FILE_TO_UPLOAD:
        // upload a file
        return;

    case SELECT_FILE_TO_DELETE:
        // delete a file
        return;

    default:
        super.onActivityResult(requestCode, resultCode, data);
    }
}
于 2014-02-17T07:51:34.337 回答
2

首先,如果您遇到错误 - 始终显示 logcat。其次,如果此方法在类扩展中声明Activity,则无需调用super,因为该方法在Activity类中为空:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    }
于 2014-02-17T07:52:41.303 回答
0

该调用实际上并没有做任何事情(指向源代码的链接),因此如果出现问题,您可以省略它。

考虑到空的超级实现,它确实很奇怪。

于 2014-02-17T07:53:27.597 回答