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);
}