ContextCompat不适用于参数

时间:2016-07-07 16:20:56

标签: java android

我正在尝试在Android应用程序的某个菜单上实现权限方法,但它给我的错误如下

  

ContextCompat类型中的方法checkSelfPermission(Context,String)不适用于参数(new BottomSheetListener(){},String)

此菜单的代码如下所示

else if(menuItem.getItemId() == R.id.save_image) {

    int gpermission = ContextCompat.checkSelfPermission(this,
            Manifest.permission.CAMERA);

    if (gpermission != PackageManager.PERMISSION_GRANTED) {
        makeRequest1();
    } else {
        saveQuote();
    }
}

请检查并告诉我是否有人可以帮助我:)。

2 个答案:

答案 0 :(得分:3)

如果此代码在Activity类中,请写:

YourActivity.this 

而不是this,否则从父Activity获取上下文并使用它。

答案 1 :(得分:2)

而不是:

int gpermission = ContextCompat.checkSelfPermission(this,
                            Manifest.permission.CAMERA);

写下这个:

int gpermission = ContextCompat.checkSelfPermission(this.getContext(),
                            Manifest.permission.CAMERA);

您正在引用BottomSheetListener,您应该参考Context。在BottomSheetListener的构造函数中,从ContextActivity传递BottomSheet并编写函数getContext(),返回此上下文对象。