“导航抽屉活动”操作栏中的Toast当前位置

时间:2015-04-20 08:39:27

标签: android android-activity android-actionbar

所以我有Navigation Drawer Activity (a non activity class)。在ToastLatitude中有一个按钮(在操作栏上)Longitude当前位置,但我无法让getsystemservice()Navigation Drawer Activity中工作{1}}。

以下是代码。

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活动完全正常时没有得到解决。

我怎样才能在抽屉活动中获得经纬度? 是否有更简单的方法来编码?

感谢。

2 个答案:

答案 0 :(得分:0)

使用 getActivity()

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

答案 1 :(得分:0)

当你在android中使用片段时,你应该使用方法getActivity()来获取上下文(所有片段取决于一个活动),所以在上面的注释中发布,你必须使用方法{{1 }}