Toast 导航抽屉中的当前位置 Activity 操作栏

Toast current location in Navigation Drawer Activity action bar

所以我有一个 Navigation Drawer Activity (a non activity class)。有一个按钮(在操作栏上)应该 Toast 当前位置在 LatitudeLongitude 但我无法让 getsystemservice() 在 [=17] 中工作=].

下面是代码。

public class NavigationDrawerFragment extends Fragment {
    public boolean onOptionsItemSelected(MenuItem item) {
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }

        if (item.getItemId() == R.id.current_location) {
            //TODO FInd a way to receive location info
            LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            Criteria criteria = new Criteria();

            Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, false));
            if (location != null){

            }

            String Text = "Current Location: \n" +
                "Latitude: " + location.getLatitude() + "\n" +
                "Longitude: " + location.getLongitude();

            Toast.makeText(getActivity(), Text, Toast.LENGTH_SHORT).show();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

所以在 getSystemService(Context.LOCATION_SERVICE); 它一直告诉我该方法没有解决,而它在 Main.java activity.

中完全没问题

我怎样才能得到在抽屉里工作的纬度和经度activity? 有没有更简单的编码方法?

谢谢。

使用getActivity().

LocationManager locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);

当您在 android 中使用片段时,您应该使用方法 getActivity() 来获取上下文(所有片段都依赖于 activity),因此如评论中所述以上,你必须使用方法 getActivity().