DialogFragment如何获取权限结果回调?
How to get Permission result callback in DialogFragment?
这是我的代码示例。
public class DialogPermission extends DialogFragment {
@Nullable
@Override
public View getView() {
View root = LayoutInflater.from(getActivity()).inflate(R.layout.frg_dialog_permission, null, false);
Button btnRead = (Button) root.findViewById(R.id.btn_read_contact_permission);
btnRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),Manifest.permission.READ_CONTACTS)){
}else{
ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.READ_CONTACTS},101);}
}
}
});
return root;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
Log.e("DialogPermission","Ho! Ho! Ho!"); // Log not printed
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
我不想在 Activity 回拨。
我希望一切都解释清楚。
您必须在您的父级 activity 中实现它并在您的片段中实现侦听器。
要在同一对话中获得请求权限结果,请使用 DialogFragment
class.
的 requestPermissions 方法
public class DialogPermission extends DialogFragment {
@Nullable
@Override
public View getView() {
View root = LayoutInflater.from(getActivity()).inflate(R.layout.frg_dialog_permission, null, false);
Button btnRead = (Button) root.findViewById(R.id.btn_read_contact_permission);
btnRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED){
if (shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)){
} else{
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},101);
}
}
}
});
return root;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
Log.e("DialogPermission","Ho! Ho! Ho!"); // Log printed
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
这是我的代码示例。
public class DialogPermission extends DialogFragment {
@Nullable
@Override
public View getView() {
View root = LayoutInflater.from(getActivity()).inflate(R.layout.frg_dialog_permission, null, false);
Button btnRead = (Button) root.findViewById(R.id.btn_read_contact_permission);
btnRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),Manifest.permission.READ_CONTACTS)){
}else{
ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.READ_CONTACTS},101);}
}
}
});
return root;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
Log.e("DialogPermission","Ho! Ho! Ho!"); // Log not printed
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
我不想在 Activity 回拨。 我希望一切都解释清楚。
您必须在您的父级 activity 中实现它并在您的片段中实现侦听器。
要在同一对话中获得请求权限结果,请使用 DialogFragment
class.
public class DialogPermission extends DialogFragment {
@Nullable
@Override
public View getView() {
View root = LayoutInflater.from(getActivity()).inflate(R.layout.frg_dialog_permission, null, false);
Button btnRead = (Button) root.findViewById(R.id.btn_read_contact_permission);
btnRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED){
if (shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)){
} else{
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},101);
}
}
}
});
return root;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
Log.e("DialogPermission","Ho! Ho! Ho!"); // Log printed
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}