Android中的库类中的StartActivityForResult

时间:2016-08-15 06:45:42

标签: android android-camera-intent

我需要从库类打开相机。这是下面的代码:

class LibraryClass extends AppCompatActivity{

    public void openCamera(){
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
    } 
}

我收到了这个错误:

 cannot resolve method
 startActivityForResult(android.content.Intent,int)

我们不能在库中使用startActivityForResult吗?

编辑1:

我找到了similar question in stackoverflow,但无法得到满意的答案。

3 个答案:

答案 0 :(得分:1)

尝试代码

this.startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);

答案 1 :(得分:1)

这是你的完整代码吗?好像没问题。您可以在任何活动上调用startActivityForResult(),因此请确保在调用此方法时,您正在活动类上执行此操作。

答案 2 :(得分:0)

传递Context作为参数,然后在启动新意图context.startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);

时使用它
class LibraryClass extends AppCompatActivity{

    static final int REQUEST_IMAGE_CAPTURE = 1;


        // call by pass reference 
        openCamera(LibraryClass.this);

        public void openCamera(Context context){
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
                context.startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
        } 
    }