super.onActivityResult()出错的原因是什么?

时间:2014-02-17 07:38:00

标签: android android-activity superclass uses-feature

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行有什么用?并且当我添加它时,它显示出一些错误。

3 个答案:

答案 0 :(得分:3)

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

  1. 根据参数,您可以判断是否应该在此级别处理此函数调用
  2. 如果是,请使用它并返回(true)
  3. 如果没有,只需调用超类的实现
  4. 因此,在您的片段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);
        }
    }
    

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

这个电话并没有真正做任何事情(link to source code)所以你可以省略它,如果它给出了问题。

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