Java 无法解析符号外部类,请求检查设置(Android)

Java 无法解析符号外部类,请求检查设置(Android),java,android,Java,Android,我正在尝试使用OuterClass从ResultCallback接口内访问顶级活动(MainActivity)。这是,但错误显示: 无法解析符号外部类 我正在使用Android版谷歌API文档中SettingsApi的示例代码 此外,我还收到另一个错误,即: 无法解析符号请求\u检查\u设置 MainActivity.java public class MainActivity extends AppCompatActivity { ... ... protected void

我正在尝试使用
OuterClass从ResultCallback接口内访问顶级活动(MainActivity)。这是
,但错误显示:

无法解析符号外部类

我正在使用Android版谷歌API文档中SettingsApi的示例代码

此外,我还收到另一个错误,即:

无法解析符号请求\u检查\u设置

MainActivity.java

public class MainActivity extends AppCompatActivity {
   ...
   ...
   protected void createLocationRequest() {
      ...
      ...
      result.setResultCallback(new ResultCallback<LocationSettingsResult>() { 
         @Override
         public void onResult(LocationSettingsResult result) {
           final Status status = result.getStatus();
           final LocationSettingsStates = result.getLocationSettingsStates();
           switch (status.getStatusCode()) {
             case LocationSettingsStatusCodes.SUCCESS: 
               ...
               break;
             case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: 
               try {
                  status.startResolutionForResult(
                      OuterClass.this,
                      REQUEST_CHECK_SETTINGS);
               } catch (SendIntentException e) {
                   ...
               }
               break;
             case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
               ...
               break;
           }
         }
      });
   }
}
public类MainActivity扩展了AppCompatActivity{
...
...
受保护的void createLocationRequest(){
...
...
result.setResultCallback(新ResultCallback(){
@凌驾
公共void onResult(位置设置结果){
最终状态状态=result.getStatus();
final LocationSettingsStates=result.getLocationSettingsStates();
开关(status.getStatusCode()){
案例位置设置StatusCodes.SUCCESS:
...
打破
案例位置设置StatusCodes.RESOLUTION_要求:
试一试{
status.StartResult解决方案(
外层,这个,
请求检查设置);
}捕获(发送){
...
}
打破
案例位置设置StatusCodes.SETTINGS\u CHANGE\u不可用:
...
打破
}
}
});
}
}

谢谢

看起来请求检查设置只是值1的局部整数

到声明以下内容的github示例:

protected static final int REQUEST_CHECK_SETTINGS = 0x1;
然后在稍后调用与代码相同的函数时使用它:

case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:    
  ...    
status.startResolutionForResult(getActivity(), REQUEST_CHECK_SETTINGS);
这个问题以前已经问过了

我当然能理解这种混乱

请求检查设置在中的示例中使用,但从未解释该值的含义


即使在中,它也将参数描述为:“传递给onActivityResult的请求代码。”

解决方案:我没有使用
OuterClass。这个
,而是使用
MainActivity。这个
,它可以工作

我在这里回答了


google文档非常混乱,因为它使用了一个占位符,好像它是一个预定义的对话框类型代码。

0x1是什么意思?在“0x1”中的0x前缀表示“0x”右边的所有内容都是十六进制(以16为基数)数(例如,0x1A是十六进制表示数字26)。不管基数是多少,数字1都是相同的。我不确定getActivity()是否正确。我不是什么安卓专家。不过,我确实看到了一个类似的[StackOverflow]()主题。谢谢您的帮助。我后来得到了解决方案,请查看下面的