2016-06-06 1 views
0

나는 android.support.v4.app.Fragment을 사용하고 있습니다. 그러나, 그것은 내가 할 수없는 android.app.Fragment을 사용하도록 요청하고 있습니다. 어떻게 문제 아래에 해결할 수 있습니다필요 android.app.Fragment

import android.support.v4.app.Fragment; 
public class CameraFragment extends Fragment implements View.OnClickListener, FragmentCompat.OnRequestPermissionsResultCallback { 
    private void requestCameraPermission() { 
     --> if (FragmentCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) { 
      --> new ConfirmationDialog().show(getChildFragmentManager(), FRAGMENT_DIALOG); 
     } else { 
      FragmentCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 
        REQUEST_CAMERA_PERMISSION); 
     } 
    } 
} 

ERROR: Found: com.example.app.CameraFragment, required android.app.Fragment

public static class ConfirmationDialog extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     final android.app.Fragment parent = getParentFragment(); 
     return new AlertDialog.Builder(getActivity()) 
       .setMessage(R.string.request_permission) 
       .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         FragmentCompat.requestPermissions(parent, 
           new String[]{Manifest.permission.CAMERA}, 
           REQUEST_CAMERA_PERMISSION); 
        } 
       }) 
       .setNegativeButton(android.R.string.cancel, 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int which) { 
           Activity activity = parent.getActivity(); 
           if (activity != null) { 
            activity.finish(); 
           } 
          } 
         }) 
       .create(); 
    } 
} 
+0

'ConfirmationDialog.class' 안에 메소드'show'에 대한 코드를 표시 할 수 있습니까? – VenomVendor

+0

@VenomVendor : 질문을 업데이트했습니다. –

+1

가져 오기를 'import android.app.DialogFragment;'로 변경'import android.support.v4.app.DialogFragment; ' – VenomVendor

답변

1

당신이 FragmentCompat을 필요가 없습니다 lib에는 당신이 V4 지원을 사용하는 경우 :

if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) { 

을하는 방법을 사용할 수없는 경우, build.gradle을 v4 지원 lib의 새로운 버전으로 업데이트해야 할 수도 있습니다.

+0

이건 어때? 'new ConfirmationDialog(). show (getChildFragmentManager(), FRAGMENT_DIALOG);'나는 여전히이 줄에 오류가 있습니다. –

+0

@ VenomVendor의 코멘트로 해결할 수있을 것 같습니다. 감사. 이제 작동 중입니다. –