-1

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;
    }

}
4

2 に答える 2

2

これを試して:

    @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ブロックで囲む必要があります。

于 2013-01-12T01:18:23.483 に答える
0

これが唯一の問題かどうかはわかりませんが、メソッドヘッダーでメソッドが返すことを示しています

String[]

しかし、あなたは実際に戻ってきますnull

于 2013-01-12T01:20:57.177 に答える