Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onActivityResult()从未被调用_Java_Android - Fatal编程技术网

Java onActivityResult()从未被调用

Java onActivityResult()从未被调用,java,android,Java,Android,我在MainActivity.java中有一个类用作接口: 在函数displayGPSRequest中,我有startResolutionForResult,它应该调用activityResult上的方法,但它从来没有调用过。我试着看其他帖子,他们使用了片段,但我没有真正理解它们。我希望您能对此提供帮助。在关联的活动中应该重写onActivityResult-目前您只是在ResultCallback中声明了一个从未调用过的方法。那么我该怎么做呢?很抱歉,我真的是个新手,只需将onActivity

我在MainActivity.java中有一个类用作接口:


在函数displayGPSRequest中,我有startResolutionForResult,它应该调用activityResult上的方法,但它从来没有调用过。我试着看其他帖子,他们使用了片段,但我没有真正理解它们。我希望您能对此提供帮助。

在关联的活动中应该重写onActivityResult-目前您只是在ResultCallback中声明了一个从未调用过的方法。

那么我该怎么做呢?很抱歉,我真的是个新手,只需将onActivityResult方法移到Activity中即可-请看下面的示例:
 public class prova{
    prova(){
    }
    @JavascriptInterface
    public void displayGPSRequest() {            
        result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
            @Override
            public void onResult(LocationSettingsResult result) {
                final Status status = result.getStatus();
                switch (status.getStatusCode()) {
                    case LocationSettingsStatusCodes.SUCCESS:
                        Log.i(TAG, "All location settings are satisfied.");
                        break;
                    case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                        Log.i(TAG, "Location settings are not satisfied. Show the user a dialog to upgrade location settings ");

                        try {
                            // Show the dialog by calling startResolutionForResult(), and check the result
                            // in onActivityResult().
                            status.startResolutionForResult(MainActivity.this, REQUEST_CHECK_SETTINGS);
                        } catch (IntentSender.SendIntentException e) {
                            Log.i(TAG, "PendingIntent unable to execute request.");
                        }
                        break;
                    case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
                        Log.i(TAG, "Location settings are inadequate, and cannot be fixed here. Dialog not created.");
                        break;
                }
            }

            public void onActivityResult(int requestCode, int resultCode, Intent data)
            {
             //final LocationSettingsStates states = LocationSettingsStates.fromIntent(data);
                switch (requestCode)
                {
                    case REQUEST_CHECK_SETTINGS:
                        switch (resultCode)
                        {
                            case Activity.RESULT_OK:
                            {
                                // All required changes were successfully made
                                Toast.makeText(MainActivity.this, "Location enabled by user!", Toast.LENGTH_LONG).show();
                                break;
                            }
                            case Activity.RESULT_CANCELED:
                            {
                                // The user was asked to change settings, but chose not to
                                Toast.makeText(MainActivity.this, "Location not enabled, user cancelled.", Toast.LENGTH_LONG).show();
                                break;
                            }
                            default:
                            {
                                break;
                            }
                        }
                        break;
                }
            }
        });
    }
}