Dans mon application, je souhaite définir le nom du lieu dans la barre d'applications.Modifier le texte dans la barre d'application à partir de setResultCallback
ID d'endroit que je reçois de l'activité précédente et dans l'activité actuelle je veux obtenir cet endroit par ID, j'utilise la documentation de Google Api Places for Android mais mon code n'a pas fonctionné.
public class PlaceInfoActivity extends AppCompatActivity implements OnConnectionFailedListener {
@BindView(R.id.placeinfo_toolbar) Toolbar mToolbar;
private static final String TAG = "place info";
private Place place;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_place_info);
ButterKnife.bind(this);
final String placeID = getIntent().getStringExtra("PLACE_ID");
setSupportActionBar(mToolbar);
...
Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId)
.setResultCallback(new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(PlaceBuffer places) {
if (places.getStatus().isSuccess() && places.getCount() > 0) {
place = places.get(0);
Log.i(TAG, "Place found: " + myPlace.getName());
} else {
Log.e(TAG, "Place not found");
}
places.release();
}
});
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle(place.getName()); // <- place is null
}
}
}
Comme je l'ai compris, la méthode getPlaceById()
fonctionne sur le principe d'une tâche asynchrone, mais alors comment puis-je déterminer quand place
sera réinitialisée et modifier le texte dans la barre d'application? Je vous remercie!
J'ai déjà essayé, le titre ne change pas – Alex