リストビューで近くの住所を一覧表示するアプリを作成していますが、何らかの理由で住所がリストに表示されません。アドレス コレクションに何か不足していますか? ...
for ループ内で発生します。取得した住所のリストを読み取って、番地や郵便番号など、ごちゃごちゃした数字ではなく、必要なビットだけに必要な情報をトリミングする必要があります。
ただし、アプリを実行するたびに、リストは空白のままです。
package com.atonea.ps;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class PSActivity extends Activity {
protected static final Location Location = null;
/** Called when the activity is first created. */
String location_text="";
String here="";
final ArrayList<String> addressbook = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button goButton = (Button) findViewById(R.id.beginButton);
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
Criteria crta = new Criteria();
crta.setAccuracy(Criteria.ACCURACY_FINE);
crta.setAltitudeRequired(false);
crta.setBearingRequired(false);
crta.setCostAllowed(true);
crta.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(crta, true);
Location location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
goButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
private void updateWithNewLocation(Location location) {
String latLong;
TextView uhoh = (TextView) findViewById(R.id.texty);
ListView listview = (ListView) findViewById(R.id.listview1);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, addressbook);
listview.setAdapter(arrayAdapter);
String addressString = "no address found";
Address fulladdress;
String street;
String zip;
String addresstogether;
if(location!=null) {
double lat = location.getLatitude();
double lon = location.getLongitude();
latLong = "Lat:" + lat + "\nLong:" + lon;
double lattitude = location.getLatitude();
double longitude = location.getLongitude();
Geocoder gc = new Geocoder(this,Locale.getDefault());
try {
List addresses= gc.getFromLocation(lattitude, longitude, 1);
if(addresses.size()>0) {
for (int a = 0; a > 6; a++) {
fulladdress = ((Address) addresses.get(a));
street = fulladdress.getAddressLine(a);
zip = fulladdress.getPostalCode();
addresstogether = street+" "+zip;
addressbook.add(a, addresstogether);
arrayAdapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(),addresstogether, Toast.LENGTH_LONG).show();
}
}
} catch (Exception e) {
}
} else {
latLong = " NO Location Found ";
}
uhoh.setText("your Current Position is :\n" +latLong + "\n " + addressString );
}
}