마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 프래그먼트 Snackbar OnClickListener finish 부분 빨간줄

0 추천
@Override
public void onRequestPermissionsResult
(int permsRequestCode,
@NonNull String[] permissions,
@NonNull int[] grandResults) {

    if ( permsRequestCode == PERMISSIONS_REQUEST_CODE &&
         grandResults.length ==
        REQUIRED_PERMISSIONS.length) {

        boolean check_result = true;

        for (int result : grandResults) {
            if (result != PackageManager.
                PERMISSION_GRANTED) {
                check_result = false;
                break;
            }
        }

        if ( check_result ) {

            startLocationUpdates();
        }
        else {
          
            if (ActivityCompat.
          shouldShowRequestPermissionRationale
           (getActivity(), REQUIRED_PERMISSIONS[0]) || ActivityCompat.
           shouldShowRequestPermissionRationale

          (getActivity(), REQUIRED_PERMISSIONS[1])) {

         Snackbar.make(mLayout, "퍼미션이 거부되었습니다.
         앱을 다시 실행하여 퍼미션을 허용해주세요. ",  Snackbar.LENGTH_INDEFINITE)
        .setAction("확인", new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        finish();
                    }
                }).show();

            }else {

            Snackbar.make(mLayout, "퍼미션이 거부되었습니다.
           설정(앱 정보)에서 퍼미션을 허용해야 합니다. ",
           Snackbar.LENGTH_INDEFINITE)
           .setAction("확인", new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        finish();
                    }
                }).show();
            }
        }

    }
}
익명사용자 님이 2019년 9월 6일 질문

1개의 답변

0 추천
 
채택된 답변
재구현 하신 View.OnClickListener 클래스엔 finish라는 메소드가 없어서  빨간색이 나온 겁니다.

finish 메소드는 Activity의 메소드이니 activity객체를 넘겨    activity.finish();  를 호출하던지,

별도 함수를 통해 명시적으로 Activity 클래스의 finish가 호출되게 해주셔야 합니다.
익명사용자 님이 2019년 9월 6일 답변
...