'android.support.v4.app.Fragment'中的'startActivity(android.content.Intent,android.os.Bundle)'无法应用于'(android.content.Intent,int)'

时间:2018-04-12 16:37:29

标签: java android android-fragments

我正在开发关于旅行计划的最后一年项目,我的应用程序包含其他功能的片段。在FragmentPhoto中,我创建的将照片上传到应用程序的错误与startActivity()有关。错误表示'android.support.v4.app.Fragment'中的'startActivity(android.content.Intent,android.os.Bundle)'不能应用于'(android.content.Intent,int)'。这是片段的代码。

公共类FragmentPhoto扩展Fragment {

private Button mSelectImage;
private StorageReference mStorage;
private static final int GALLERY_INTENT = 2;

public FragmentPhoto() {
    // Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    mStorage = FirebaseStorage.getInstance().getReference();

    mSelectImage = (Button) getView().findViewById(R.id.selectImage);

    mSelectImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            startActivity(intent,GALLERY_INTENT);
        }
    });


}


public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.activity_fragment_photo, container, false);
}

}

与private static final int GALLERY_INTENT = 2相关的错误有点,因为extends不是AppCompatActivity。有什么方法可以解决这个问题吗?先感谢您。

1 个答案:

答案 0 :(得分:2)

ACTION_PICK将请求发送到已安装的应用程序(使用此操作注册以提供图像)以允许用户选择图像以便唯一地标识请求,传递唯一的int参数,该参数将在{{1所以你必须使用startActivityForResult

所以请使用onActivityResult