Android - AsyncTask返回字符串数组



我之前问了一个关于在ListView中显示JSON数据的错误的问题。我被指向AsyncTask,这让我非常困惑。我希望JSON数据被解析并设置为我的AsyncTask中的String[]数组。顺便说一下,我读了文档。我需要你帮我做这件事。这是我的错误代码:

class ShowTitlesTask extends AsyncTask<String[], Integer, String[]> {
    @Override
    protected String[] doInBackground(String[]... params) {
            URL jsonURL = new URL("http://gdata.youtube.com/feeds/api/users/illbehonest/uploads?v=2&alt=jsonc");
            URLConnection jc = jsonURL.openConnection();
            InputStream is = jc.getInputStream();
            String jsonTxt = IOUtils.toString(is);
            JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt);
            JSONObject jdata = json.getJSONObject("data");
            JSONArray jentry = jdata.getJSONArray("items");
            for (int entryNumber = 0; entryNumber<=25; entryNumber++){
                    JSONObject entry = jentry.getJSONObject(entryNumber);
                    String[][] jtitle = {entry.getString("title")};
                    params = jtitle;
            }
            return null;
    }
}

试试这个:

    @Override
    protected String[] doInBackground(String[]... params) {
            List<String> result = new ArrayList<String>();                
            URL jsonURL = new URL("http://gdata.youtube.com/feeds/api/users/illbehonest/uploads?v=2&alt=jsonc");
            URLConnection jc = jsonURL.openConnection();
            InputStream is = jc.getInputStream();
            String jsonTxt = IOUtils.toString(is);
            JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt);
            JSONObject jdata = json.getJSONObject("data");
            JSONArray jentry = jdata.getJSONArray("items");
            for (int entryNumber = 0; entryNumber<=jentry.lenght(); entryNumber++){
                    JSONObject entry = jentry.getJSONObject(entryNumber);
                    result.add(entry.getString("title");
            }
            return result.toArray(new String[result.size()]);
    }

顺便说一下,你在doInBackground中使用的一些方法会抛出不同的异常,所以你必须用try/catch块包围它们。

我不知道这是否是你唯一的问题但在你的方法头你显示方法返回

String[]

但实际上返回null

相关内容

  • 没有找到相关文章

最新更新