需要在android中的字符串中获取异步任务返回值

时间:2014-02-20 07:04:09

标签: android json android-asynctask

我需要在我的字符串变量中获取AsyncTask结果,查看我的编码

我的异步课程

   String result =  new GetFavCityList().execute();

    // getFavcity List
        public class GetFavCityList extends AsyncTask<Void, Void, String> {

            @Override
            protected String doInBackground(Void... params) {
                // TODO Auto-generated method stub
                FavCity.clear();
                getfavcity();
                return null;
            }

            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);

            }

        }

我的解析功能

    public void getfavcity() {

            FavCity.clear();

            String url = Utility.gBasepath + "getCityList/" + gCountryValue + "/"
                    + gFavState.replaceAll(" ", "%20");

            JSONObject json = Getjsonurl.getJsonUrl(url, Profile.this);
    }

现在,我需要在字符串结果中获取json返回值,如何获取值请帮助我获取值。

感谢。

3 个答案:

答案 0 :(得分:1)

首先将getfavcity()的返回类型从 void 更改为 String

像,

public String getfavcity() {
     FavCity.clear();
     String url = Utility.gBasepath + "getCityList/" + gCountryValue + "/"
                    + gFavState.replaceAll(" ", "%20");

     JSONObject json = Getjsonurl.getJsonUrl(url, Profile.this);
     return json.toString();
    }

doInBackground()

中的第二名
@Override
 protected String doInBackground(Void... params) {
                // TODO Auto-generated method stub
   FavCity.clear();                   
   return getfavcity();
  }

最后和主要..

使用AsyncTask的<{1}}方法(注意:它的UI阻止功能)

.get()

最佳方法:

不要使用AsyncTask的String result = new GetFavCityList().execute().get(); 方法,只需在AsyncTask的.get()中使用String结果。

答案 1 :(得分:0)

getfavcity()返回您的字符串,然后在doInBackground()

中返回该字符串

答案 2 :(得分:-1)

new GetFavCityList().get();

尝试使用上述方法。但是您需要将参数Void更改为String