Error showing a snackBar on onRequestPermissionsResult

1

How can a snackbar be used within onRequestPermissionsResult as it needs a view I assign it with findViewById(R.id.root_view)

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

    Snackbar.make(findViewById(R.id.root_view), getString(R.string.permission_request_advice),
            Snackbar.LENGTH_LONG)
            .setAction(getString(R.string.permission_settings), new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    PermissionUtils.openInstalledAppDetailsActivity(RouteActivity.this);
                }
            })
            .show();

}

I get the following error:

  

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.view.ViewGroup.getContext ()' on a null object reference

    
asked by Webserveis 22.11.2016 в 13:01
source

1 answer

1

The problem is definitely the context.

I suggest you get the root view in this way:

 View rootView = getWindow().getDecorView().getRootView();

and use it in your Snackbar:

Snackbar.make(rootView, getString(R.string.permission_request_advice),
            Snackbar.LENGTH_LONG)
            .setAction(getString(R.string.permission_settings), new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    PermissionUtils.openInstalledAppDetailsActivity(RouteActivity.this);
                }
            })
            .show();
    
answered by 22.11.2016 / 21:12
source