更新、以下を参照してください。
クラス LocationData と ArrayList listOfObjects を onPostExecute() に返すにはどうすればよいですか? UI で使用したいのですが、現在は AsyncTask のバックグラウンドにあります。また、マーカーを追加したい:
mMap.addMarker(new MarkerOptions()
    .position(new LatLng(lati, longi))
    .title(name));
各ループの後に新しい場所をそれぞれマップに追加できるようにします。
LocationData クラスを返した後、上記を onPostExecute に配置しますか?
    try {
        String apples = endpoint.listContactInfo().execute().toString();
        JSONObject jObject = new JSONObject(apples);
        JSONArray jsonArr = jObject.getJSONArray("items");
        for (int i = 0; i < jsonArr.length(); i++) {
            JSONObject jsonObj1 = jsonArr.getJSONObject(i);
            // Storing each json item in variable
            String id = jsonObj1.getString(TAG_ID);
            String nameFirst1 = jsonObj1.getString(TAG_FIRSTNAME);
            String nameLast1 = jsonObj1.getString(TAG_LASTNAME);
            String emailAddress1 = jsonObj1.getString(TAG_EMAIL);
            String streetAddress1 = jsonObj1.getString(TAG_ADDRESS);
            String phone1 = jsonObj1.getString(TAG_PHONE);
            // test to see if made it to string
            Log.d("YOUR_TAG", "First Name: " + nameFirst1 + " Last Name: "
                    + nameLast1);
            address = coder.getFromLocationName(streetAddress1, 5);
            Address location1 = address.get(0);
            // SET LAT LNG VALUES FOR MARKER POINT
            lati = location1.getLatitude();
            longi = location1.getLongitude();
            Log.d("Location", "Location:" + lati + " " + longi);
            class LocationData {
                private double lat;
                private double longitude;
                private String name;
                public LocationData(double lat, double longitude,
                        String name) {
                    this.lat = lat;
                    this.longitude = longitude;
                    this.name = name;
                }
                public void setLat(double lat) {
                    this.lat = lat;
                }
                public void setLongitude(double longitude) {
                    this.longitude = longitude;
                }
                public double getLat() {
                    return lat;
                }
                public double getLongitude() {
                    return longitude;
                }
                public void setName(String name) {
                    this.name = name;
                }
                public String getName() {
                    return name;
                }
            }
            ArrayList<LocationData> listOfObjects = new ArrayList<LocationData>();
            listOfObjects.add(new LocationData(lati, longi, nameFirst1));
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return (long) 0;
}
// WHAT DO I PUT HERE TO RETURN LocationData Class here
// ADD MARKER TO MAP UI
protected void onPostExecute() {
    // mMap.addMarker(new MarkerOptions()
    // .position(new LatLng(lati, longi))
    // .title("Hello world"));
これは基本的なことのように思えるかもしれませんが、私はこのメソッドを作成しました: public ArrayList getLocationData() {
                                 ArrayList<LocationData> listOfObjects = new ArrayList<LocationData>();
                                 listOfObjects.add(new LocationData(lati, longi, nameFirst1));
                                 return listOfObjects;
                             }
私の LocationData クラス内。次に、LocationData.getLocationData(); を配置しました。onPostExecute を使用すると、LocationData を解決できません。現時点では、コードをまとめると次のようになります。
 try {
    String apples = endpoint.listContactInfo().execute().toString();
    JSONObject jObject = new JSONObject(apples);
    JSONArray jsonArr = jObject.getJSONArray("items");
     for(int i =0 ; i<jsonArr.length() ;i++ ){
         JSONObject jsonObj1 = jsonArr.getJSONObject(i);
                    // Storing each json item in variable
                    String id = jsonObj1.getString(TAG_ID);
                    final String nameFirst1 = jsonObj1.getString(TAG_FIRSTNAME);
                    String nameLast1 = jsonObj1.getString(TAG_LASTNAME);
                    String emailAddress1 = jsonObj1.getString(TAG_EMAIL);
                    String streetAddress1 = jsonObj1.getString(TAG_ADDRESS);
                    String phone1 = jsonObj1.getString(TAG_PHONE);
                    //test to see if made it to string
                    Log.d("YOUR_TAG", "First Name: " + nameFirst1 + " Last Name: " + nameLast1);
                       address = coder.getFromLocationName(streetAddress1,5);
                        Address location1 = address.get(0);
                        // SET LAT LNG VALUES FOR MARKER POINT
                     lati = location1.getLatitude();
                         longi = location1.getLongitude();
                         Log.d("Location", "Location:" + lati + " " +  longi);
                       class LocationData {
                             private double lat;
                             private double longitude;
                             private String name;
                             public LocationData(double lat, double longitude, String name) {
                                 this.lat = lat;
                                 this.longitude = longitude;
                                 this.name = name;
                             }
                             public void setLat(double lat) {
                                 this.lat = lat;
                             }
                             public void setLongitude(double longitude) {
                                 this.longitude = longitude;
                             }
                             public double getLat() {
                                 return lat;
                             }
                             public double getLongitude() {
                                 return longitude;
                             }
                             public void setName(String name) {
                                   this.name = name;
                                }
                             public String getName() {
                                 return name;
                                }
                             public ArrayList<LocationData> getLocationData() {
                                 ArrayList<LocationData> listOfObjects = new ArrayList<LocationData>();
                                 listOfObjects.add(new LocationData(lati, longi, nameFirst1));
                                 return listOfObjects;
                             }
                             }
     }
    } catch (IOException e) {
    e.printStackTrace();
  } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
      return (long) 0;
    }
    //WHAT DO I PUT HERE TO RETURN LocationData Class here
         // ADD MARKER TO MAP UI
    protected void onPostExecute(Long result ) {
                  //CANT BE RESOLVED
        LocationData.getLocationData();
        //mMap.addMarker(new MarkerOptions()
        //.position(new LatLng(lati, longi))
        // .title("Hello world"));
@Sustain の推奨事項に基づく私の変更は次のとおりです。現在、マップマーカーを取得していないようです。何か見た人いますか?
public class FinderActivity extends Activity implements LocationListener  {
GoogleMap mMap;
Location myLocation;
EditText length;
String lengthString;
LocationManager locationmanager;
double lati;
double longi;
String nameFirst1;
//Spinner s;
   List<Address> address;
   Geocoder coder = new Geocoder(this);
private static final String TAG_ID = "id";
private static final String TAG_FIRSTNAME = "nameFirst";
private static final String TAG_LASTNAME = "nameLast";
private static final String TAG_EMAIL = "emailAddress";
private static final String TAG_ADDRESS = "streetAddress";
private static final String TAG_STATE = "state";
private static final String TAG_PHONE = "phone";
JSONArray contacts = null;
private static class LocationData {
     private double lat;
     private double longitude;
     private String name;
     public LocationData(double lat, double longitude, String name) {
         this.lat = lat;
         this.longitude = longitude;
         this.name = name;
     }
     public void setLat(double lat) {
         this.lat = lat;
     }
     public void setLongitude(double longitude) {
         this.longitude = longitude;
     }
     public double getLat() {
         return lat;
     }
     public double getLongitude() {
         return longitude;
     }
     public void setName(String name) {
           this.name = name;
        }
     public String getName() {
         return name;
        }
     }
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.maps);
    mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    if (mMap!= null) {
        mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        mMap.setMyLocationEnabled(true);
        mMap.animateCamera(CameraUpdateFactory.zoomBy(17));
        }
    LocationManager locationmanager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Criteria cr = new Criteria();
    String provider = locationmanager.getBestProvider(cr, true);
    Location location = locationmanager.getLastKnownLocation(provider);
    locationmanager.requestLocationUpdates(provider, 20, 0, (LocationListener) this);
    mMap.moveCamera(CameraUpdateFactory.newLatLng((new LatLng(location.getLatitude(), location.getLongitude()))));
    new EndpointsTask().execute(getApplicationContext());
}
public class EndpointsTask extends AsyncTask<Context, LocationData, Long> {
    private List<LocationData> locationList = new ArrayList<LocationData>();
    public Long doInBackground(Context... contexts) {
      Contactinfoendpoint.Builder endpointBuilder = new Contactinfoendpoint.Builder(
          AndroidHttp.newCompatibleTransport(),
          new JacksonFactory(),
          new HttpRequestInitializer() {
          public void initialize(HttpRequest httpRequest) { }
          });
  Contactinfoendpoint endpoint = CloudEndpointUtils.updateBuilder(
  endpointBuilder).build();
  try {
    String apples = endpoint.listContactInfo().execute().toString();
    JSONObject jObject = new JSONObject(apples);
    JSONArray jsonArr = jObject.getJSONArray("items");
     for(int i =0 ; i<jsonArr.length() ;i++ ){
         JSONObject jsonObj1 = jsonArr.getJSONObject(i);
                    // Storing each json item in variable
                    String id = jsonObj1.getString(TAG_ID);
                    String nameFirst1 = jsonObj1.getString(TAG_FIRSTNAME);
                    String nameLast1 = jsonObj1.getString(TAG_LASTNAME);
                    String emailAddress1 = jsonObj1.getString(TAG_EMAIL);
                    String streetAddress1 = jsonObj1.getString(TAG_ADDRESS);
                    String phone1 = jsonObj1.getString(TAG_PHONE);
                    //test to see if made it to string
                    Log.d("YOUR_TAG", "First Name: " + nameFirst1 + " Last Name: " + nameLast1);
                       address = coder.getFromLocationName(streetAddress1,5);
                        Address location1 = address.get(0);
                        // SET LAT LNG VALUES FOR MARKER POINT
                     lati = location1.getLatitude();
                         longi = location1.getLongitude();
                         Log.d("Location", "Location:" + lati + " " +  longi);
                         LocationData data = new LocationData(lati, longi, nameFirst1);
                         locationList.add(data);
                         publishProgress(data);
     }
    } catch (IOException e) {
    e.printStackTrace();
  } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
      return (long) 0;
    }
    protected void onProgressUpdate(LocationData data) {
        // Add Marker on Map using data. This is called by
        // publishProgress(LocationData) on the UI Thread.
        mMap.addMarker(new MarkerOptions()
        .position(new LatLng(lati, longi))
         .title(nameFirst1));
        Log.d("bananas", lati + longi + nameFirst1);
    }
    //WHAT DO I PUT HERE TO RETURN LocationData Class here
         // ADD MARKER TO MAP UI
    protected void onPostExecute() {
    }
    }