0

您好,我想获得准确的位置,以便我使用以下链接

在 Android 中获取用户当前位置的最简单、最可靠的方法是什么?

以下是该站点的代码:

      LocationResult locationResult = new LocationResult(){
    @Override
    public void gotLocation(Location location){
        //Got the location!
    }
   };

MyLocation myLocation = new MyLocation();
myLocation.getLocation(this, locationResult);

现在在LocationResult课堂上我已经修改了它并想在文本视图中显示位置所以我写了下面的代码

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    LocationResult locationResult = new LocationResult(){
        @Override
        public void gotLocation(Location location){
            TextView txtValue = (TextView)findViewById(R.id.txtValue);
            txtValue.setText("LATITUDE : - "+location.getLatitude()+"\n\n LONGITUDE :- "+location.getLongitude()+"\n\n ALTITUDE :- "+location.getAltitude());
        }
    };
    myLocation = new MyLocation();
    myLocation.getLocation(this, locationResult);

}

但在那我得到了例外

下面是我的日志

 10-04 17:06:35.699: E/AndroidRuntime(5733): FATAL EXCEPTION: Timer-0
 10-04 17:06:35.699: E/AndroidRuntime(5733): java.lang.NullPointerException
 10-04 17:06:35.699: E/AndroidRuntime(5733):    at    com.example.gps_accurate_data.MainActivity$1.gotLocation(MainActivity.java:22)
 10-04 17:06:35.699: E/AndroidRuntime(5733):    at com.example.gps_accurate_data.MyLocation$GetLastLocation.run(MyLocation.java:119)
 10-04 17:06:35.699: E/AndroidRuntime(5733):    at java.util.Timer$TimerImpl.run(Timer.java:284)
4

2 回答 2

1

如果您查看您提供的链接,当设备尝试获取位置时,它将运行代码;

if(gps_loc!=null){
    locationResult.gotLocation(gps_loc);
    return;
}

if(net_loc!=null){
    locationResult.gotLocation(net_loc);
    return;
}

locationResult.gotLocation(null);

null这意味着如果它无法获取位置,它很可能会使用设置为的位置给您打电话。你需要检查一下。

于 2012-10-04T11:56:18.400 回答
0

在顶部声明您的活动:TextView txtValue;

然后在你的onCreate()txtValue = (TextView)findViewById(R.id.txtValue);

if(location != null){
    txtValue.setText("LATITUDE : - "+location.getLatitude()+"\n\n LONGITUDE :-    "+location.getLongitude()+"\n\n ALTITUDE :- "+location.getAltitude());
}
于 2012-10-04T11:50:33.347 回答