从 onpostExecute 获取字符串数组

get String Array from onpostExecute

提问人:chris199 提问时间:4/9/2023 最后编辑:chris199 更新时间:4/9/2023 访问量:24

问:

我首先想将数组 res 传递给另一个类。 为此,我创建了一个 get 方法。不幸的是,onPostExecute 之外的数组是空的,我收到一个错误。数据的调用也被延迟了,因为我认为它还没有加载数据,但也出现了错误。我还检查了类,看看数组是否已满,确实如此。如何从 onPostExecute 获取数据? 我已经看过其他问题,但不太了解它们的解决方案。也许这里有人可以帮助我。

public class FetchDataRoulette extends AsyncTask<Object,String,String> {
    String googleNearByPlacesData;
    String url;
    String[] res;

    @Override
    protected void onPostExecute(String s) {

        try{
            JSONObject jsonObject=new JSONObject(s);
            JSONArray jsonArray=jsonObject.getJSONArray("results");

            res=new String[jsonArray.length()];


            for(int i=0;i<jsonArray.length();i++){

                JSONObject jsonObject1=jsonArray.getJSONObject(i);
                JSONObject getLocation=jsonObject1.getJSONObject("geometry").getJSONObject("location");

                String lat=getLocation.getString("lat");
                String lng=getLocation.getString("lng");

                JSONObject getName=jsonArray.getJSONObject(i);
                String name=getName.getString("name");

                LatLng latLng=new LatLng(Double.parseDouble(lat), Double.parseDouble(lng));

                res[i]=name;
            }

            
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    public String[] getRes(){
        Log.d("Test",res[1]);
        return res;
    }
    @Override

    protected String doInBackground(Object... objects) {

        try{
            url=(String) objects[0];
            DownloadUrl downloadUrl=new DownloadUrl();
            googleNearByPlacesData= downloadUrl.retireveUrl(url);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return googleNearByPlacesData;
    }
}

我已经读取了数组并检查了它。也在不同的地方。我进行了延迟查询,以便写入值。

Android 数组 android-asynctask

评论


答: 暂无答案