Android 如何在片段中使用ContextCompat?它说片段不能转换成上下文

Android 如何在片段中使用ContextCompat?它说片段不能转换成上下文,android,android-fragments,Android,Android Fragments,我试图在片段中使用Contextcompat和ActivityCompat,但它显示 错误“错误:(49,50)错误:不兼容类型:CallFragment无法转换为上下文”和“错误:(51,51)错误:不兼容类型:CallFragment无法转换为活动” 我怎样才能解决这个问题 private Context context; public Yourclassname(Context context) { this.context = context; } 使用上下文而不是“this”

我试图在片段中使用
Contextcompat
ActivityCompat
,但它显示

错误“错误:(49,50)错误:不兼容类型:CallFragment无法转换为上下文”和“错误:(51,51)错误:不兼容类型:CallFragment无法转换为活动”

我怎样才能解决这个问题

private Context context;

public Yourclassname(Context context) {
   this.context = context;
}
使用上下文而不是“this”,并使用下面的代码

if(ContextCompat.checkSelfPermission(context,android.Manifest.permission.CALL_PHONE)!=PackageManager.PERMISSION_GRANTED) { 
    ActivityCompat.requestPermissions(context, new String[]{android.Manifest.permission.CALL_PHONE}, REQUEST_CALL); 
}
在片段中使用getContext()而不是这个

“this”指的是您案例中的片段。
我们很清楚,这意味着您需要
上下文
活动
参考。由于您正在片段类
中使用代码,因此这
虽然为时已晚,但我希望有人会觉得这很有帮助

if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {
    requestPermissions(new String[]{Manifest.permission.READ_SMS, Manifest.permission.RECEIVE_SMS}, 101);
    }

共享您的代码if(ContextCompat.checkSelfPermission(this,Manifest.permission.CALL_PHONE)!=PackageManager.permission_grated){ActivityCompat.requestPermissions(this,新字符串[]{Manifest.permission.CALL_PHONE},REQUEST_CALL);}它在活动中起作用,但我正在零碎地尝试。在哪里使用它?@AhmedKaram plz告诉我从哪里可以知道或学到这种东西。根据经验,我的朋友,你面对的每一个话题或问题,试着去寻找它周围的一切,而不仅仅是为了解决这样的问题
if(ContextCompat.checkSelfPermission(getContext(), Manifest.permission.CALL_PHONE)!=PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL); } 
class YourFragment extends Fragment{
  
   private Context context;

   @Override
   public void onAttach(Context context)
   {
     this.context = context;
   }
}
getActivity(); 
(Activity)context;
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {
    requestPermissions(new String[]{Manifest.permission.READ_SMS, Manifest.permission.RECEIVE_SMS}, 101);
    }