方法startActivityForResult(Intent,int)未定义用于类型ABC



我有一个带有实现Serializable的类ABCABC类是一个报警类,所以使用一系列功能,我只想从SD卡上传图像,到那里我需要在GRIDVIEW中查看图像,然后用户需要选择image,这就是过程我有一个叫getImage()的方法来从sd卡中获取图像。。

public void getImage() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),1);
}   

获取错误The method startActivityForResult(Intent, int) is undefined for the type ABC我该如何纠正?

接受非活动类中的context并将其强制转换为Activity

private Context context;
private Activity activity;
public Example(Context context) {
this.context = context;
this.activity = (Activity) context;
}

然后把它称为你想要的

activity.startActivityForResult()

如果您想稍后得到结果,请在非活动类中定义一个用户定义的onActivityResult()

public void onActivityResult(int requestCode, int responseCode,
Intent intent) {}

并将活动类的结果传递给用户定义的onActivityResult()方法

@Override
protected void onActivityResult(int requestCode, int responseCode,
Intent intent) {
example.onActivityResult(requestCode, responseCode, intent);
}

短版本:startActivityForResult()仅在活动或片段内部可用。

如果你发布更多关于你正在努力实现的细节,我可能会给你一个更有用的答案

最新更新