1
我試圖在android中從json創建google map但無法從AsyncTask獲取onPostExecute中的latlng值。我是新手。 這是我的代碼。將Lat/Lng傳遞給onPostExecute在android
// Declare Variables
JSONObject jsonobject;
JSONArray jsonarray;
ListView listview;
ListViewAdapter adapter;
ProgressDialog mProgressDialog;
ArrayList<HashMap<String, String>> arraylist;
static String ID="id";
static String NAME = "name";
static String LAT="lat";
static String LNG="lng";
@Override
protected String doInBackground(String... params) {
// Create an array
arraylist = new ArrayList<HashMap<String, String>>();
// Retrieve JSON Objects from the given URL address
jsonobject = JSONfunctions
.getJSONfromURL("https://sitename.com/storeListJson.php");
try {
// Locate the array name in JSON
jsonarray = jsonobject.getJSONArray("contacts");
for (int i = 0; i < jsonarray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject jsonobject = jsonarray.getJSONObject(i);
// Retrive JSON Objects
map.put("id", jsonobject.getString("id"));
map.put("name", jsonobject.getString("name"));
map.put("lat",jsonobject.getString("lat"));
map.put("lng",jsonobject.getString("lng"));
String latt=jsonobject.getString(LAT);
String lngg=jsonobject.getString(LNG);
// Set the JSON Objects into the arrayddf
// arraylist.add(map);
Log.d("Location", "Location:" + latt + " " + lngg);
//above line shows me the lat/lng values quite right in logcat
}
} catch (JSONException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result)
{
//what to write here, tried all things but cant get lat/lng vals
}
我嘗試了很多的方法,通常得到其次NPE錯誤原因onPostExecute緯度/經度值丟失空白地圖。
Log.d("Location", "Location:" + latt + " " + lngg);
上面的線條顯示我在logcat中的lat/lng值,我在doInBackground中執行。
我是新來的android的東西,希望SO社區將幫助我指導我正確的方式。
錯過一些信息。已編輯 – Shadesblade
感謝您的指導。我已經能夠獲得onPostExecute內的lat/lng(LogCat顯示所有條目)。但是,當我嘗試繪製地圖時,沒有任何反應。 'setUpMap();for(int i = 0; i
user3170139
我終於可以用標記顯示地圖。我一直在使用code語句在第二個地方調用mapIntialize函數。也許忘了我曾經說過兩次。非常感謝您的支持。 OS社區岩石! – user3170139