无法解析符号OuterClass,REQUEST_CHECK_SETTINGS(Android)

时间:2017-09-02 22:26:05

标签: java android

我正在尝试使用OuterClass.this从ResultCallback界面访问顶级活动(MainActivity),但错误显示:

  

无法解析符号OuterClass

我正在使用Google API for Android的文档中的SettingsApi示例代码。

另外,我得到另一个错误说:

  

无法解析符号REQUEST_CHECK_SETTINGS

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;
           }
         }
      });
   }
}

谢谢!

3 个答案:

答案 0 :(得分:2)

看起来REQUEST_CHECK_SETTINGS只是值为1的局部整数。

Here's a link到声明以下内容的github示例:

protected static final int REQUEST_CHECK_SETTINGS = 0x1;

然后使用它来调用与您的代码相同的函数:

case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:    
  ...    
status.startResolutionForResult(getActivity(), REQUEST_CHECK_SETTINGS);

此问题先前已在StackOverflow上提出。

我当然可以理解这种困惑。

REQUEST_CHECK_SETTINGS用于Google Android documentation中的示例,但没有解释该值是什么或意味着什么。

即使在documentation specifically about Status.startResolutionForResult中,它也将参数描述为:&#34;传递给onActivityResult的请求代码。&#34;

答案 1 :(得分:0)

我在这里回答,https://stackoverflow.com/a/48428074/9263399

谷歌文档非常令人困惑,因为它使用占位符就像它是预定义的对话框类型代码一样。

答案 2 :(得分:-1)

解决方案:我使用OuterClass.this而不是使用MainActivity.this,而且有效!