问题描述
我得到了一些问题,在Android应用:我想阅读供稿RSS和present他们一些Android设备上查看信息。
我使用了 Android的异步http1.4.3.jar
库到我的应用程序连接到这个网站:<一href=\"http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://f1grandprix.motorionline.com/feed/\" rel=\"nofollow\">http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://f1grandprix.motorionline.com/feed/
通过这种连接,我下载了XML文件,我把它变成与GSON库一个JSON文件,但是当我尝试了APP到我的Android手机,我得到一个空指针异常。本类连接,以获得XML和将其转化为JSON code是以下内容:
私人无效loadTitle(){
字符串的URL = \"http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://f1grandprix.motorionline.com/feed/\"; AsyncHttpClient客户端=新AsyncHttpClient(); client.get(网址,新AsyncHtt presponseHandler(){
@覆盖
公共无效的onSuccess(字符串文本){
super.onSuccess(文本); GSON德codeR =新GSON(); JsonResponse JR =去coder.fromJson(文字,JsonResponse.class); 输入[]项= jr.responseData.feed.entries;
的for(int i = 0; I&LT; entries.length;我++){
Log.d(NET,伊尔TITOLO德拉+ I +项E:+条目[I] .title伪);
}
最终的ListView lv_title =(ListView控件)findViewById(R.id.lv_title);
// ListAdapter la_title =新TitleAdapter(MainActivity.this,项);
//Log.d(\"LIST_ADAPTER,Caricato correttamente金正日名单适配器:+ la_title);
//lv_title.setAdapter(la_title);
lv_title.setAdapter(新TitleAdapter(MainActivity.this,参赛作品));
pleaseWait.hide();
} @覆盖
公共无效onFailure处(Throwable的为arg0,ARG1字符串){
super.onFailure(为arg0,ARG1);
Log.d(不及格,失败);
pleaseWait.hide();
}
});
}
该TitleAdapter.java如下:
公共类TitleAdapter扩展ArrayAdapter&LT;钥匙进入GT; {公共TitleAdapter(上下文的背景下,输入[]标题){
超(背景下,R.layout.list_item,R.id.lv_title,标题);
}
}
最后我得到这个错误:
12月2日至23日:46:05.525:E / AndroidRuntime(4577):致命异常:主要
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):显示java.lang.NullPointerException
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.AbsListView.obtainView(AbsListView.java:1495)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.ListView.onMeasure(ListView.java:1127)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.View.measure(View.java:8335)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.RelativeLayout.measureChild(RelativeLayout.java:566)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:381)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.View.measure(View.java:8335)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.View.measure(View.java:8335)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.View.measure(View.java:8335)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.View.measure(View.java:8335)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.ViewRoot.performTraversals(ViewRoot.java:843)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.view.ViewRoot.handleMessage(ViewRoot.java:1892)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.os.Handler.dispatchMessage(Handler.java:99)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.os.Looper.loop(Looper.java:130)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在android.app.ActivityThread.main(ActivityThread.java:3835)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在java.lang.reflect.Method.invokeNative(本机方法)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在java.lang.reflect.Method.invoke(Method.java:507)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
十二月2日至23日:46:05.525:E / AndroidRuntime(4577):在dalvik.system.NativeStart.main(本机方法)
有人可以帮我解决这个问题?
谢谢!
In the entries
array that you pass to your custom ArrayAdapter
(for which you still call the super.getView()
method(or you didn't overriden it), right?) it appears that you have null
values. This is a problem if you use the default implementation of ArrayAdapter
's getView()
method, as ArrayAdapter
will call in that method, by default, the toString()
method on its type object(Entry
object in your case) to obtain a String
to show in the row.
So make sure the array that you pass to your implementation of the ArrayAdapter
doesn't contain null values.
这篇关于从JSON创建ListAdapter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!