こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

android getFromLocationが?

Android初心者です。
下記コードでエラーとなり、解決策が見当たらず、非常に困っています。
どなたがご教授をお願いします。
public class MapViewSample extends MapActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView)findViewById(R.id.MapView01);
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
ConcreteOverlay overlay = new ConcreteOverlay(this);
List<Overlay> overlayList = mapView.getOverlays();
overlayList.add(overlay);
}
protected boolean isRouteDisplayed() {
return false;
}
private class ConcreteOverlay extends Overlay {
GeoPoint mGeoPoint;
Geocoder mGeocoder;
ConcreteOverlay(Context context) {
mGeocoder = new Geocoder(context, Locale.JAPAN);
}
public boolean onTap(GeoPoint point, MapView mapView) {
mGeoPoint = point;
try {
TextView textView = (TextView)findViewById(R.id.TextView01);
boolean success = false;
★ここでエラー⇒List<Address>addressList = mGeocoder.getFromLocation(point.getLatitudeE6()/1E6, point.getLongitudeE6()/1E6, 5);
for (Iterator<Address> it=addressList.iterator(); it.hasNext();) {
Address address = it.next();
String country = address.getCountryName();
String admin = address.getAdminArea();
String locality = address.getLocality();
if(country != null && admin != null & locality != null) {
textView.setText(country + admin + locality);
success = true;
break;
}
}
if(!success) textView.setText("Error");
textView.invalidate();
}
catch (Exception e){
Toast.makeText(getApplicationContext(), "ErrorToast", 1000).show();
}
return super.onTap(point, mapView);
}
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
         ・・・省略・・・
}
}
}

投稿日時 - 2011-02-19 18:42:44

QNo.6535118

すぐに回答ほしいです

質問者が選んだベストアンサー

ただエラーだけでなく、どういうエラーかを書いていただけますか。エラー時の出力は、問題解決のための最大のヒントなのですから、それがないと調べようがありません。また、どういう動作状況でしょうか。APIバージョンなどですね。そのへんの情報もあると助かります。

ところで、GPS回りということでふと思ったのですが、エミュレータで"Service not Available"メッセージが出ている、ということだったりしませんか。エミュレータで動かないサービスを利用しようとするとこういうエラーが出るのですが……。それとも、実機でエラーが出ているのでしょうか。

投稿日時 - 2011-02-19 19:49:08

補足

エラーは、どうしても try{ }catch{ }でひっかかるので、Toastでメッセージを表示させてどこまで動くのか確認してみました。
すると、上記の部分で、catch分に飛んでしまいます。
テストは、エミュレーターで行いました。
実機でのテストは、mapそのものが表示されず出来ていません。

参考書のサンプルコードなのですが、上記コードをベースに読み進めていくので、解決しないと次に進めず困っています。

Eclipseのコンソールにはエラーは出ていないので、全く解決できません。
情報不明確で申し訳ありませんm(_ _)m

投稿日時 - 2011-02-20 14:09:11

お礼

実機でテストしたところ、なんの問題もなく起動することができました。

ありがとうございました。

投稿日時 - 2011-02-20 16:33:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんばんは。

mGeocoder.getFromLocation()
これで返ってくるのは、
android.location.Address
クラスのインスタンスでは?

List<Address>addressList =
こっちはListで受けてますが・・・?

投稿日時 - 2011-02-19 21:15:43

補足

エラーは、どうしても try{ }catch{ }でひっかかるので、Toastでメッセージを表示させてどこまで動くのか確認してみました。
すると、上記の部分で、catch分に飛んでしまいます。
テストは、エミュレーターで行いました。
実機でのテストは、mapそのものが表示されず出来ていません。

toastで.getFromLocation()の
引数point.getLatitudeE6()/1E6, point.getLongitudeE6()/1E6, 5
は表示されたので、
List<Address>addressList =
が怪しいとは思っていたのですが、どの様に記述すれば良いのかわかりません
ちなみにimport分は文字数の問題で省略しましたが、以下の様に記述しています。

import android.widget.Toast;//デバッグ用メッセージBOX

import java.util.Iterator;
import java.util.List;
import java.util.Locale;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.widget.TextView;

情報不明確で申し訳ありませんm(_ _)m
.

投稿日時 - 2011-02-20 14:14:56

お礼

実機でテストしたところ、なんの問題もなく起動することができました。

ありがとうございました。

投稿日時 - 2011-02-20 16:33:21

あなたにオススメの質問