0

チャンネルの動画を表示するアプリケーションを作成しています。現在、動画のタイトルを ListView に表示する作業を行っています。アクティビティ VideoPlay を開始するたびに、アプリケーションがクラッシュします。コードの何が問題になっていますか?

ビデオプレイ

コード:

package com.aer.illbehonest;

import java.io.IOException;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class VideoPlay extends Activity {   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_play);

        ListView listView = (ListView) findViewById(R.id.videolist);
        String[] values = null;

        try {
            VideoData.getTitle(values);
        } catch (IOException e) {
            e.printStackTrace();
        }

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, android.R.id.text1, values);

            listView.setAdapter(adapter); 
    }
}

ビデオデータ

コード:

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;

import org.apache.commons.io.IOUtils;

public class VideoData {
    public static String[] getTitle(String[] title) throws IOException {
            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")};
                    title = jtitle;
            }
            return title;
    }
}
4

1 に答える 1

1

ネットワーク呼び出しを行うには、非同期タスクを使用する必要があります。

ここに ListView の例があります: http://android-er.blogspot.co.uk/2010/07/load-listview-in-background-asynctask.html

于 2013-01-11T23:05:16.510 に答える