Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用凌空截击从JSON中获取列表,仅生成最后一个对象的列表_Java_Android_Android Volley - Fatal编程技术网

Java 使用凌空截击从JSON中获取列表,仅生成最后一个对象的列表

Java 使用凌空截击从JSON中获取列表,仅生成最后一个对象的列表,java,android,android-volley,Java,Android,Android Volley,我正在尝试获取JSON格式的数据。但是,在获取时创建的列表仅针对每个列表项具有最后一个对象的详细信息。请引导 以下是Mainactivity获取数据的代码 package com.example.ankurdell.customlistview; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.jso

我正在尝试获取JSON格式的数据。但是,在获取时创建的列表仅针对每个列表项具有最后一个对象的详细信息。请引导

以下是Mainactivity获取数据的代码

package com.example.ankurdell.customlistview;


import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.Menu;
import android.widget.ListView;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;

public class MainActivity extends Activity {
    // Log tag
    private static final String TAG = MainActivity.class.getSimpleName();

    // Movies json url

    private static final String url = "https://api.dailymotion.com/videos";
    private ProgressDialog pDialog;
    private ArrayList<DailyMovie> movieList = new ArrayList<>();
    private ListView listView;
    private CustomListAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.list);
        adapter = new CustomListAdapter(this, movieList);
        listView.setAdapter(adapter);

        pDialog = new ProgressDialog(this);
        // Showing progress dialog before making http request
        pDialog.setMessage("Loading...");
        pDialog.show();


        // Creating volley request obj
        JsonObjectRequest movieReq = new JsonObjectRequest(Request.Method.GET, url, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.d(TAG, response.toString());
                        hidePDialog();

                        // Parsing json

                        try {

                            JSONArray jsonArray = response.getJSONArray("list");


                            DailyMovie movie = new DailyMovie();
                            for (int a = 0; a < jsonArray.length(); a++) {
                                JSONObject obj = jsonArray.getJSONObject(a);
                                System.out.println("Object Value " + a + " " + obj.toString());

                                movie.setId(obj.getString("id"));

                                movie.setTitle(obj.getString("title"));

                                movie.setOwner(obj.getString("owner"));

                                movie.setChannel(obj.getString("channel"));
                                // adding movie to movies array

                                movieList.add(movie);
                            }


                        } catch (JSONException e) {
                            e.printStackTrace();
                        }


                        // notifying list adapter about data changes
                        // so that it renders the list view with updated data
                        adapter.notifyDataSetChanged();
                    }
                }, new Response.ErrorListener()

        {
            @Override
            public void onErrorResponse(VolleyError error) {
                System.out.println("Error");
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                hidePDialog();

            }
        });

        // Adding request to request queue
        app.AppController.getInstance().addToRequestQueue(movieReq);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        hidePDialog();
    }

    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

谁能告诉我哪里做错了。我指的是做编码。

日常电影只是一个元素。对吧?

您必须在for语句中声明DailyMovie变量

for (int a = 0; a < jsonArray.length(); a++) {
 JSONObject obj = jsonArray.getJSONObject(a);
 System.out.println("Object Value " + a + " " + obj.toString());

 DailyMovie movie = new DailyMovie();

 movie.setId(obj.getString("id"));                        
 movie.setTitle(obj.getString("title"));                      
 movie.setOwner(obj.getString("owner"));                                  
 movie.setChannel(obj.getString("channel"));

 // adding movie to movies array
 movieList.add(movie);

}
for(int a=0;a
System.out.println(“对象值”+a+“”+obj.toString());什么是值?为evry对象完美地获取所有值。对象值0{“id”:“x5xhdeg”,“title”:“T”下面的参考ừ乌托邦ọt sóng_tậ第26页,“频道”:“短片”,“所有者”:“x1yzduc”}08-20 18:59:00.873 26946-26946/com.example.ankurdell.customlistview I/System.out:combine x5xhdegTừ乌托邦ọt sóng_tập 26 08-20 18:59:00.873 26946-26946/com.example.ankurdell.customlistview I/System.out:Object Value 1{“id”:“x5xhg83”,“title”:“BéBébienvenuevalerie”,“channel”:“tv”,“owner”:“x1pntaq”}您是在寻找JsonArray中的最后一个JsonObject,还是JsonObject中的最后一个Object?DailyMovie只是一个元素。对吗?@Tony当我点击url时,我得到了列表数组,它有4个带有键值的对象。我正在获取每个键的值,并将它们放在自定义列表视图中。但我得到的列表只有最后一个对象的值10次
for (int a = 0; a < jsonArray.length(); a++) {
 JSONObject obj = jsonArray.getJSONObject(a);
 System.out.println("Object Value " + a + " " + obj.toString());

 DailyMovie movie = new DailyMovie();

 movie.setId(obj.getString("id"));                        
 movie.setTitle(obj.getString("title"));                      
 movie.setOwner(obj.getString("owner"));                                  
 movie.setChannel(obj.getString("channel"));

 // adding movie to movies array
 movieList.add(movie);

}