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

The method startActivityForResult(Intent, int) is undefined for the type ABC

我有一个 class ABC 和工具 Serializable ABC class 是一个警报 class 所以使用一堆功能,我只是想从 SD 卡上传图像,我需要在 GRIDVIEW 中查看图像然后用户需要到select的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 我该如何纠正?

简短版本:startActivityForResult() 只能从 activity 或片段中获得。

如果您post更详细地了解您想要实现的目标,我可能会给您更有帮助的答案

接受非activity里面的context class 并把它转换成Activity

 private Context context;
 private Activity activity;

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

然后随心所欲地调用它

activity.startActivityForResult()

如果您想稍后自己获得结果,请在非 activity class

中定义一个用户定义的 onActivityResult()
public void onActivityResult(int requestCode, int responseCode,
                             Intent intent) {}

并将 activity class 的结果传递给用户定义的 onActivityResult() 方法

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