我正在开发关于旅行计划的最后一年项目,我的应用程序包含其他功能的片段。在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。有什么方法可以解决这个问题吗?先感谢您。
答案 0 :(得分:2)
ACTION_PICK
将请求发送到已安装的应用程序(使用此操作注册以提供图像)以允许用户选择图像以便唯一地标识请求,传递唯一的int参数,该参数将在{{1所以你必须使用startActivityForResult
所以请使用onActivityResult