私はAndroidにかなり慣れていません。インターネット上の API から取得した概要に多数のビデオを表示するアプリを作成する必要があります。
API は次のようになります。
[{"名前":"9VJirQKuoxs","画像":"http://i.ytimg.com/vi/9VJirQKuoxs/default.jpg"}]
それは私が望むように機能します。「name:」は動画 ID であり、YouTube アプリを開いてこの特定の動画を開く必要があります。これを開くにはどうすればよいですか?私はPHP開発から来ていますが、まだ「Web」の心の状態にあるので、それを理解することはできません. 誰かが私を正しい道に導くことができますか? または、例を提供することさえできますか?
ありがとうございます。コードを提供する必要がある場合は、お問い合わせください。
編集:
YouTube アプリを開くことをテストしましたが、動作しますが、クリックされた特定のアイテムでアプリを開く必要があります。
クリックされたアイテムの変数を取得するにはどうすればよいですか? この場合、変数は video_id という文字列です。変数が作成される部分は次のとおりです。
String url = params[0];
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response;
response = client.execute(get);
InputStream content = response.getEntity().getContent();
BufferedReader reader;
reader = new BufferedReader(new InputStreamReader(content));
String line;
String json = "";
while ((line = reader.readLine()) != null) {
json += line;
}
JSONArray array = new JSONArray(json);
ArrayList<JSONFields> alData = new ArrayList<JSONFields>();
for (int i = 0; i < array.length(); i++) {
JSONFields data = new JSONFields();
JSONObject obj = array.getJSONObject(i);
data.setName(obj.getString("name"));
data.setUrl(obj.getString("url"));
data.setVideoid(obj.getString("name"));
alData.add(data);
}
System.out.println("Data returned sucessfully");
return alData;
そして、これがonclickリスナーです
listview = (ListView) findViewById(R.id.listView1);
listview.setClickable(true);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
System.out.println(arg3);
}
});
私を助けてください!
EDIT2:
package com.bounty4u.jsonparsing.data;
public class JSONFields {
private String name;
private String url;
private String video_id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public void setVideoid(String video_id){
this.video_id = video_id;
}
public String getVideoid(){
return video_id;
}
}
また、これはエラーログです:
05-22 16:44:42.280: E/AndroidRuntime(24776): 致命的な例外: メイン 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.NullPointerException 05-22 16:44:42.280: E/AndroidRuntime(24776): com.bounty4u.jsonparsing.MainActivity$1.onItemClick(MainActivity.java:49) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.widget.AdapterView.performItemClick( AdapterView.java:298) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.widget.AbsListView.performItemClick(AbsListView.java:1202) 05-22 16:44:42.280: E/AndroidRuntime( 24776): android.widget.AbsListView$PerformClick.run(AbsListView.java:2975) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.widget.AbsListView$1.run(AbsListView.java: 3657) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Handler.handleCallback(Handler.java:615) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Handler.dispatchMessage(Handler.java:92) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Looper.loop(ルーパー) .java:137) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16:44:42.280: E/AndroidRuntime(24776) ): java.lang.reflect.Method.invokeNative(Native Method) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invoke(Method.java:511) 05 -22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776) ): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime(24776): dalvik.system.NativeStart.main(ネイティブ メソッド) でE/AndroidRuntime(24776): android.os.Handler.dispatchMessage(Handler.java:92) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Looper.loop(Looper.java) :137) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime(24776): dalvik.system.NativeStart.main(ネイティブメソッド)E/AndroidRuntime(24776): android.os.Handler.dispatchMessage(Handler.java:92) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Looper.loop(Looper.java) :137) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime(24776): dalvik.system.NativeStart.main(ネイティブメソッド)android.os.Handler.dispatchMessage(Handler.java:92) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Looper.loop(Looper.java:137) 05-22 16 :44:42.280: E/AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect で。 Method.invokeNative(ネイティブ メソッド) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E /AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal. os.ZygoteInit.main (ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime (24776): dalvik.system.NativeStart.main (ネイティブ メソッド) でandroid.os.Handler.dispatchMessage(Handler.java:92) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Looper.loop(Looper.java:137) 05-22 16 :44:42.280: E/AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect で。 Method.invokeNative(ネイティブ メソッド) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E /AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal. os.ZygoteInit.main (ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime (24776): dalvik.system.NativeStart.main (ネイティブ メソッド) でdispatchMessage(Handler.java:92) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Looper.loop(Looper.java:137) 05-22 16:44:42.280: E/ AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit) で.java:553) 05-22 16:44:42.280: E/AndroidRuntime (24776): dalvik.system.NativeStart.main (ネイティブ メソッド) でdispatchMessage(Handler.java:92) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.os.Looper.loop(Looper.java:137) 05-22 16:44:42.280: E/ AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit) で.java:553) 05-22 16:44:42.280: E/AndroidRuntime (24776): dalvik.system.NativeStart.main (ネイティブ メソッド) でandroid.os.Looper.loop(Looper.java:137) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16 :44:42.280: E/AndroidRuntime(24776): at java.lang.reflect.Method.invokeNative(Native Method) 05-22 16:44:42.280: E/AndroidRuntime(24776): at java.lang.reflect.Method .invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16 :44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime(24776): dalvik で。 system.NativeStart.main(ネイティブメソッド)android.os.Looper.loop(Looper.java:137) 05-22 16:44:42.280: E/AndroidRuntime(24776): android.app.ActivityThread.main(ActivityThread.java:4765) 05-22 16 :44:42.280: E/AndroidRuntime(24776): at java.lang.reflect.Method.invokeNative(Native Method) 05-22 16:44:42.280: E/AndroidRuntime(24776): at java.lang.reflect.Method .invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16 :44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime(24776): dalvik で。 system.NativeStart.main(ネイティブメソッド)4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 05-22 16:44:42.280: E/AndroidRuntime(24776): Java で.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 786) 05-22 16:44:42.280: E/AndroidRuntime (24776): com.android.internal.os.ZygoteInit.main (ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime ( 24776): dalvik.system.NativeStart.main(ネイティブ メソッド) で4765) 05-22 16:44:42.280: E/AndroidRuntime(24776): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 05-22 16:44:42.280: E/AndroidRuntime(24776): Java で.lang.reflect.Method.invoke(Method.java:511) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 786) 05-22 16:44:42.280: E/AndroidRuntime (24776): com.android.internal.os.ZygoteInit.main (ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime ( 24776): dalvik.system.NativeStart.main(ネイティブ メソッド) でZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime(24776): dalvik.system.NativeStart.main(ネイティブ メソッド) でZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-22 16:44:42.280: E/AndroidRuntime(24776): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-22 16:44:42.280: E/AndroidRuntime(24776): dalvik.system.NativeStart.main(ネイティブ メソッド) で
編集:
JSONArray array = new JSONArray(json);
ArrayList<JSONFields> alData = new ArrayList<JSONFields>();
for (int i = 0; i < array.length(); i++) {
JSONFields data = new JSONFields();
JSONObject obj = array.getJSONObject(i);
data.setName(obj.getString("name"));
data.setUrl(obj.getString("url"));
data.setVideoid(obj.getString("video_id"));
System.out.println("Video ID: " + obj.getString("video_id"));
alData.add(data);
}