1

GPS 位置情報を使用する Android アプリを作成しています。私のコードはとてもシンプルです。

public class MyActivityThing extends Activity {

Location                    l;
MyLocationListener          locationListener;
LocationManager             locationManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    locationListener = new MyLocationListener();
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, locationListener);


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.car, menu);
    return true;
}

public void setHotColdLocation(View view)
{
    l = locationListener.getCurrentLocation();
}
}

これが私の MyLocationListener です

public class MyLocationListener implements LocationListener {

private static Location thelocation;
@Override
public void onLocationChanged(Location location) {

    thelocation = location;
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

@Override
public void onProviderEnabled(String provider) {

}

@Override
public void onProviderDisabled(String provider) {

}

public Location getCurrentLocation()
{
    return thelocation;
}
}

私の状況はこれです。のメソッドをonClick呼び出すボタンがあります。setHotColdLocationMyActivityThing

私の質問は、ユーザーがボタンを押したときに場所が設定されていることを確認するにはどうすればよいですか? メソッドはすぐには呼び出されonLocationChangedないため、アプリの最初の起動時にボタンを押して例外を発生させることができます....

場所が呼​​び出されるまでボタンを非表示にする必要がありますか? setHotColdLocationの内容をtry catch で囲み、場所が設定されるまでユーザーのクリックを破棄する必要がありますか? 私はそれを機能させる方法をたくさん思いつくことができますが、最善の方法や正しい方法を知りません.

何か助けはありますか?

4

1 に答える 1

0

別の言い方をすれば、ボタンは最終的に場所を設定するタスクを開始できるということです。

于 2013-08-16T03:56:40.483 に答える