私は非常に単純なアプリケーションを作成し、アンドロイドを学ぼうとしています。
このアプリケーションでは、Map を含む 1 つのアクティビティを作成し、オプション メニュー項目をクリックするとオプション メニューがあり、別のアクティビティを開き、現在のマップを閉じます。コードは次のとおりです。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent = new Intent();
if (item.getItemId() == R.id.LegalNotice) {
intent.setClass(Map.this, LegalNotices.class);
} else if (item.getItemId() == R.id.ChangeDistance) {
intent.setClass(Map.this, ChangeDefaultDistance.class);
}
startActivity(intent);
this.finish();
return true;
}
ここで ChangeDefaultDistance は、リスト ビューのみを含むアクティビティです。リスト ビューから特定の項目を選択すると、マップ アクティビティが再び開始されます。コードは次のとおりです。
@Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long id) {
TextView tv;
tv = (TextView) view;
Map.distance = tv.getText().toString();
startActivity(new Intent(ChangeDefaultDistance.this, Map.class));
}
マップが再び開始されると onCreate() メソッドが実行されますが、以前は onCreate メソッドでマップを特定の位置にズームし、マーカーを描画しましたが、現在はズームされておらず、マーカーも描画されていません。コードをデバッグすると、コードが実行されていることがわかりましたが、何も起こっていません。
なぜこれが起こっているのか誰か教えてもらえますか?
これも onCreate メソッドのコードです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isGooglePlayAvailable()) {
criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// Getting the service from context and giving to location_manager
location_manager = (LocationManager) getSystemService(LOCATION_SERVICE);
setContentView(R.layout.mapdemo);
placesTask = new PlacesTask();
getGoogleMap();
getUserLocation();
google_map.clear();
Toast.makeText(Map.this, "Hello Sexy!!!", Toast.LENGTH_LONG).show();
Toast.makeText(this, "Latitude:" + lat + " Longitude:" + lang,
Toast.LENGTH_LONG).show();
drawMarker();
// If Distance is not choosed default distance is given
if (distance.equals("")) {
distance = "1000";
}
sb = createUrl();
placesTask.execute(sb);
}
}
すべての機能は正常に動作しています。
しかし、再びズームしてマーカーを描画するのではなく、何が問題になるのでしょうか?