-1

ボタンをクリックして現在の場所をオブジェクトに設定しようとしています。しかし、ボタンをクリックすると ANR エラーが発生します。これは、私が話しているボタンの onClick メソッドです。ここで、destinationObj はグローバルに宣言され、タイプは Location です。私を助けてください。

 public void onClick(View v){

    double lat, lon;
    lat=destinationObj.getLatitude();
    lon=destinationObj.getLongitude();
    destinationObj.setLatitude(lat);
    destinationObj.setLongitude(lon);


}

およびlogcat:

java.lang.reflect.Method.invoke(Method.java:511) 09-29 10:44:02.456: E/AndroidRuntime(14449): android.view.View$1.onClick(View.java:3594) 09 -29 10:44:02.456: E/AndroidRuntime(14449): ... 11 詳細 09-29 10:44:02.456: E/AndroidRuntime(14449): 原因: java.lang.NullPointerException 09-29 10:44 :02.456: E/AndroidRuntime(14449): com.example.user.MainActivity.onClick(MainActivity.java:130) 09-29 10:44:02.456: E/AndroidRuntime(14449): ... 14 more 09- 29 10:44:04.088: I/Process(14449): シグナルを送信しています。PID: 14449 SIG: 9 NullPointerException 09-29 10:44:02.456: E/AndroidRuntime(14449): com.example.user.MainActivity.onClick(MainActivity.java:130) 09-29 10:44:02.456: E/AndroidRuntime(14449): ... 14 more 09-29 10:44:04.088: I/Process(14449): シグナルを送信しています。PID: 14449 SIG: 9 NullPointerException 09-29 10:44:02.456: E/AndroidRuntime(14449): com.example.user.MainActivity.onClick(MainActivity.java:130) 09-29 10:44:02.456: E/AndroidRuntime(14449): ... 14 more 09-29 10:44:04.088: I/Process(14449): シグナルを送信しています。PID: 14449 SIG: 9

4

1 に答える 1

0

destinationObj.setLatitude(destinationObj.getLatitude()); これは意味がありません?

destinationObj は、セッターとゲッターの両方で同じオブジェクトです。左側は、TextView または現在の場所を伝えたいものである必要があります。

setLatitude が次のように実装されている場合:

this.latitude = getLatitude();

コードはループに入り、緯度変数を連続的に設定します。

このガイドに従ってみてください: http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

ガイドで次の操作を行います。

@Override
public void onLocationChanged(Location location) {
    if ((this.location = location) == null)
        return;
}

次に、GPSTracker のインスタンスで、gps を呼び出します。

gps.getLatitude();
gps.getLongitude();

GPS から最新の受信位置を取得するには (通知は GPS ユニットが安定するまで同じ値を読み取ります)

Location オブジェクトが本当に必要な場合は、ゲッターを自分で実装できます。

public class GPSTracker ...
...
   public Location getLastLocation() {
       return this.location;
   }
}
于 2013-09-29T11:16:18.560 に答える