JSONファイルから読み込まれたListViewのこのView Adapterメソッドがあります。ListViewの2つの位置間の距離を表示
各リスト項目のTextViewに表示するコンポーネントの1つは、ユーザーの場所とListViewに表示される各場所の間の距離です。
しかし、私はそれを実行するたびにアプリケーションがクラッシュして、私は//calculate the distance
から始まる私のコードに何か問題があることを知っています。
誰かが私が間違っていた行を分析して修正するのを手助けできますか?ここで
はJSONから解析された経度と緯度のサンプルです:
"latitude": 52.5074779785632,
"longitude": 13.3903813322449,
、ここでは、私が使用している方法です。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = LocationsListActivity.this.getLayoutInflater().inflate(R.layout.listitems, null, true);
}
VideoLocation vidLocation = videoLocations[position];
ImageView v = (ImageView)convertView.findViewById(R.id.image);
String url = vidLocation.documentary_thumbnail_url;
v.setTag(url);
loader.DisplayImage(url, ctx, v);
TextView titleView = (TextView)convertView.findViewById(R.id.txt_title);
String title = vidLocation.name;
titleView.setText(title.toUpperCase());
TextView descView = (TextView)convertView.findViewById(R.id.txt_list_desc);
String desc = vidLocation.text;
descView.setText(desc);
//calculate the distance
Location newLocation = new Location("User");
GeoPoint geopoint = new GeoPoint(
(int) (newLocation.getLatitude() * 1E6), (int) (newLocation
.getLongitude() * 1E6));
GeoPoint myposition = geopoint;
Location locationA = new Location("point A");
Location locationB = new Location("point B");
locationA.setLatitude(geopoint.getLatitudeE6()/1E6);
locationA.setLongitude(geopoint.getLongitudeE6()/1E6);
locationB.setLatitude(vidLocation.latitude/ 1E6);
locationB.setLongitude(vidLocation.longitude/1E6);
double distance = locationA.distanceTo(locationB);
String distances = String.valueOf(distance);
TextView distanceView = (TextView)convertView.findViewById(R.id.txt_distance);
System.out.println(distances);
distanceView.setText(distances+" m");
return convertView;
}
exception/stacktraceを多分追加しますか? – Leven
デバッガでコード実行をステップ実行します。どこに爆弾がありますか? – curtisk