Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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创建ListAdapter_Java_Android_Asynchronous_Gson - Fatal编程技术网

Java 从JSON创建ListAdapter

Java 从JSON创建ListAdapter,java,android,asynchronous,gson,Java,Android,Asynchronous,Gson,我在安卓应用程序中遇到了一些问题:我想从RSS订阅源中读取信息,并在安卓视图中显示它们。 我正在使用android-async-http1.4.3.jarlibs将我的应用程序连接到此站点: 通过这种连接,我下载了XML文件,并使用gson libs将其转换为JSON文件,但当我在Android手机上尝试应用程序时,会出现空指针异常。要连接、获取xml并将其转换为JSON代码的类如下所示: private void loadTitle() { String URL = "http

我在安卓应用程序中遇到了一些问题:我想从RSS订阅源中读取信息,并在安卓视图中显示它们。 我正在使用
android-async-http1.4.3.jar
libs将我的应用程序连接到此站点:

通过这种连接,我下载了XML文件,并使用gson libs将其转换为JSON文件,但当我在Android手机上尝试应用程序时,会出现空指针异常。要连接、获取xml并将其转换为JSON代码的类如下所示:

    private void loadTitle() {
    String URL = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://f1grandprix.motorionline.com/feed/";

    AsyncHttpClient client = new AsyncHttpClient();

    client.get(URL, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(String text) {
            super.onSuccess(text);

            Gson decoder = new Gson();

            JsonResponse jr = decoder.fromJson(text, JsonResponse.class);

            Entry[] entries = jr.responseData.feed.entries;
            for (int i = 0; i < entries.length; i++) {
                Log.d("NET", "Il titolo della " + i + " entry è: " + entries[i].title);
            }


            final ListView lv_title = (ListView) findViewById(R.id.lv_title);
            //ListAdapter la_title = new TitleAdapter(MainActivity.this, entries);
            //Log.d("LIST_ADAPTER", "Caricato correttamente il list adaptor: "+ la_title);
            //lv_title.setAdapter(la_title);
            lv_title.setAdapter(new TitleAdapter(MainActivity.this, entries));
            pleaseWait.hide();
        }

        @Override
        public void onFailure(Throwable arg0, String arg1) {
            super.onFailure(arg0, arg1);
            Log.d("FAIL", "Failure");
            pleaseWait.hide();
        }
    });
}
有人能帮我解决这个问题吗? 谢谢大家!

有人能帮我解决这个问题吗

在传递给自定义
ArrayAdapter
条目
数组中(对于该数组,您仍然调用
super.getView()
方法(或者您没有覆盖它),对吗?)似乎有
null
值。如果使用
ArrayAdapter
getView()
方法的默认实现,这是一个问题,因为
ArrayAdapter
将调用该方法,默认情况下,它的type对象(
Entry
对象)上的
toString()
方法将获得一个
字符串来显示在行中


因此,请确保传递给
ArrayAdapter
实现的数组不包含空值

谢谢大家!!这是一个很好的建议!
public class TitleAdapter extends ArrayAdapter<Entry> {

public TitleAdapter(Context context, Entry[] title) {
    super(context, R.layout.list_item, R.id.lv_title, title);
}
02-23 12:46:05.525: E/AndroidRuntime(4577): FATAL EXCEPTION: main
02-23 12:46:05.525: E/AndroidRuntime(4577): java.lang.NullPointerException
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.AbsListView.obtainView(AbsListView.java:1495)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.ListView.onMeasure(ListView.java:1127)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.View.measure(View.java:8335)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.RelativeLayout.measureChild(RelativeLayout.java:566)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:381)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.View.measure(View.java:8335)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.View.measure(View.java:8335)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.View.measure(View.java:8335)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.View.measure(View.java:8335)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.ViewRoot.performTraversals(ViewRoot.java:843)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1892)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.os.Looper.loop(Looper.java:130)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at android.app.ActivityThread.main(ActivityThread.java:3835)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at java.lang.reflect.Method.invokeNative(Native Method)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at java.lang.reflect.Method.invoke(Method.java:507)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
02-23 12:46:05.525: E/AndroidRuntime(4577):     at dalvik.system.NativeStart.main(Native Method)