Bonjour les gars, J'ai une méthode sur mon java MainActivity qui va marquer les endroits sur le fragment googlemap, mais quand j'appelle cette méthode d'une classe d'activité non, il me donne une erreurAppelez une méthode de la classe d'activité principale à une classe de non-activité java.lang.RuntimeException
java.lang.RuntimeException: Impossible de créer gestionnaire intérieur thread qui n'a pas appelé Looper.prepare()
Ma méthode de MainActivity qui peut faire un marqueur est
public void addMarkers(Double lat, Double lng, String name){
MarkerOptions options = new MarkerOptions()
.title(name)
.position(new LatLng(lat, lng));
mGoogleMap.addMarker(options);
}
et ma classe non d'activité qui appelle la méthode est
private int parseDataTag(){
try {
JSONArray ja = new JSONArray(jsonData);
JSONObject jo = null;
AdvanceSearch advanceSearch = new AdvanceSearch(); //MainActivity class
for(int i=0;i<ja.length();i++){
jo=ja.getJSONObject(i);
int id = jo.getInt("id");
String name = jo.getString("name");
String lat = jo.getString("latitude");
String lng = jo.getString("longtitude");
advanceSearch.addMarkers(Double.parseDouble(lat), Double.parseDouble(lng), name);
}
return 1;
} catch (JSONException e) {
e.printStackTrace();
}
return 0;
}
Vous bloquez votre interface utilisateur de mainthread thread..that est pourquoi – Akshay
que voulez-vous dire monsieur Akshay? Désolé débutant ici :) –
'AdvanceSearch advanceSearch = nouvelle AdvanceSearch();' - cela vous donnera une instance complètement autonome de votre "MainActivity". Son interface utilisateur ne sera jamais affichée, donc ajouter des marqueurs est tout à fait inutile. Si vous voulez montrer une 'Activity' dans' android', utilisez quelque chose comme 'startActivity (new Intent (monEntierContext, MyNewActivity.class));' Voir aussi la réponse de Shivam Rawat. – 0X0nosugar