在我的 android 应用程序中,我将来自 currentUser 的位置放入 parse.com 的表中。我再次以正确的方式检索该信息时遇到问题。
我想为每个对象创建一个 for each 循环,我在其中使用用户名和纬度和经度。
我已经阅读了数小时的 API,但列表是我的弱项,我就是无法理解它。
ParseQuery<ParseObject> users = ParseQuery.getQuery("user");
ParseObject object = (ParseObject) users.get(user); //This is invald, but dno what to write in "get"
final String objectId = users.getObjectId();
final int olat = users.getInt("lat");
final int olong = users.getInt("lng");
String name = users.getString("username");
我想在 for each 循环中使用此信息,然后添加每个用户最后已知的纬度和经度的标记;
我有这个我想放在循环中;
double oldLatitude = olat;
double oldLongitutde = olong;
LatLng latLng = new LatLng(oldLatitude, oldLongitutde);
MarkerOptions options = new MarkerOptions()
.position(latLng)
.title(objectId + "was here!");
mMap.addMarker(options);
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
我有这样的事情,但不知道如何处理;
public void handleDiffUsers(Location location){
users.getInBackground(objectId, new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (e == null) {
for (int i = 0; i < object.size(); i++) {
//marker code.. ?
} else {
// something went wrong
}
}
});
最佳答案
检索 ParseUser 列表并获取 ParseGeoPoint
ParseQuery<ParseUser> queryParseUser = ParseUser.getQuery();
queryParseUser.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> locationList, ParseException arg1) {
// TODO Auto-generated method stub
if (locationList != null) {
for (ParseUser parseObject : locationList) {
ParseGeoPoint parseGeoPoint = parseObject.getParseGeoPoint("location"); "location" is column name of user table
// create marker
MarkerOptions marker = new MarkerOptions().position(
new LatLng(parseGeoPoint.getLatitude(), parseGeoPoint.getLongitude())).title(parseObject.getUsername());
// Changing marker icon
marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));
// adding marker
googleMap.addMarker(marker);
}
}
}
});
关于android - 从 parse.com 检索和使用用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757778/