我正在寻找类似数组的东西,但它需要存储多种数据类型。 Oracle Java 教程说:“数组是一个容器对象,它保存固定数量的单一类型的值。”那么,如果我不能将一个数组用于多种类型,我该使用什么?
我的这段代码一次只向地图添加一个标记,因为它会在每个循环中写入我的纬度和经度值,并且只将最后一个标记传递给 onPostExecute。所以我需要像数组这样的东西来传递多种形式的联系信息。即,我从每个 JSON 字符串中提取位置,但我还需要从该后台线程中提取姓名和电话号码并将其传递到 UI。
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);
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (long) 0;
}
// ADD MARKER TO MAP UI
protected void onPostExecute(Long result) {
mMap.addMarker(new MarkerOptions()
.position(new LatLng(lati, longi))
.title("Hello world"));
}
您可以使用ArrayList
.
ArrayList<Object> listOfObjects = new ArrayList<Object>();
然后向其中添加项目。
listOfObjects.add("1");
listOfObjects.add(someObject);
或者创建您自己的对象来封装您需要的所有字段,例如
public class LocationData {
private double lat;
private double longitude;
public LocationData(double lat, double longitude) {
this.lat = lat;
this.longitude = longitude;
}
//getters
//setters
}
然后将您的纬度/经度对添加到ArrayList
类型的LocationData
ArrayList<LocationData> listOfObjects = new ArrayList<LocationData>();
listOfObjects.add(new LocationData(lat, longitude));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)