从ArrayList Android返回值

从ArrayList Android返回值,android,arraylist,Android,Arraylist,我试图返回一个值数组。我这样做了,并设法在JSONService中检索到了值。如何在OneMap.Java中检索方法updateUI中的值数组?我在updateUI()的第一行遇到一个nullexception错误 OneMap.java public class OneMap extends Activity implements OnSingleTapListener { private Map map=null; private ArrayList<Map> l

我试图返回一个值数组。我这样做了,并设法在JSONService中检索到了值。如何在OneMap.Java中检索方法updateUI中的值数组?我在updateUI()的第一行遇到一个nullexception错误

OneMap.java

public class OneMap extends Activity implements OnSingleTapListener
{
    private Map map=null;
    private ArrayList<Map> list = null; 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
      loadData();
    }
    private void loadData() {
       new GetCoordinationsDetailsTask().execute();
    }
   private class GetCoordinationsDetailsTask extends AsyncTask<String, String, Void> {
    @Override
    protected void onPreExecute() {

    };

    @Override
    protected Void doInBackground(String... params) {
        list=JSONService.getLocationList();
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        updateUI();
    }
}

private void updateUI() {
    String name=map.getName();
    String region=map.getRegion();
    String iconurl=map.getIconURL();
    String address=map.getAddress();
    String contactno=map.getContactNo();
    String operatinghrs=map.getOperatingHrs();
    String coordinates=map.getCoordinates();

您忘记在OneMap中创建Map的实例,该实例使用未初始化的Map对象。另一方面,您的
JSONService.getLocationList
返回一个
ArrayList
。您可以从这个ArrayList获取元素以填充UI

除了map类之外,为map创建一个空构造函数,并使用空构造函数OneMap.java将其实例化为--protectedvoid onCreate(Bundle savedInstanceState){map=new map();}如何从ArrayList查看元素?可以使用
get(int index)
方法
public static ArrayList<Map> getLocationList() {
    String url = second_URL + "storelocator.php";
    String method = GET;
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    JSONObject result = makeHttpRequest(url, method, params);

    try {
        Log.d("result",result.toString());
        if (result.getInt("success") == 1) {
            JSONArray jLocationList = result.getJSONArray("store_list");
            ArrayList<Map> list = new ArrayList<Map>();

            int count = jLocationList.length();
            for (int i = 0; i < count; i++) {
                JSONObject jlocation = jLocationList.getJSONObject(i);
                String LocationName=jlocation.getString("mall");
                String region=jlocation.getString("region");
                String iconURL=jlocation.getString("image");
                String address=jlocation.getString("address");
                String telephone=jlocation.getString("contact");
                String operatinghrs=jlocation.getString("Operating");
                String coordinates=jlocation.getString("coordinates");
                Map location= new Map(LocationName,region,iconURL,address,telephone,operatinghrs,coordinates);
                //list.add(location);
            }
            return list;
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
}
public class Map {

private String name=null;
private String region=null;
private String iconURL=null;
private String address=null;
private String contactNo=null;
private String operatinghrs=null;
private String coordinates=null;


public Map(String name,String region,String iconURL,String address, String contactNo, String operatinghrs,String coordinates)
{
    this.name=name;
    this.region=region;
    this.iconURL=iconURL;
    this.address=address;
    this.contactNo=contactNo;
    this.operatinghrs=operatinghrs;
    this.coordinates=coordinates;
}

public String getName()
{
    return name;
}
public String getRegion()
{
    return region;
}
public String getIconURL()
{
    return iconURL;
}
public String getAddress()
{
    return address;
}
public String getContactNo()
{
    return contactNo;
}
public String getOperatingHrs()
{
    return operatinghrs;
}
public String getCoordinates()
{
    return coordinates;
}
}