所以我有Navigation Drawer Activity (a non activity class)
。在Toast
和Latitude
中有一个按钮(在操作栏上)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活动完全正常时没有得到解决。
我怎样才能在抽屉活动中获得经纬度? 是否有更简单的方法来编码?
感谢。
答案 0 :(得分:0)
使用 getActivity()。
LocationManager locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
答案 1 :(得分:0)
当你在android中使用片段时,你应该使用方法getActivity()
来获取上下文(所有片段取决于一个活动),所以在上面的注释中发布,你必须使用方法{{1 }}