0
我想在Android中顯示字符串數組作爲列表。該列表顯示,但當我滾動到列表的末尾時,它會拋出NullPointerException
。NullPointer異常,當在Android中列表的末尾達到時
這是我ListActivity
類:
public class HolidayListActivity extends ListActivity
{
String res;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("future", "may be needed in future"));
String access_url = "http://127.0.0.1:8080/tt/HolidayListAction";
System.out.println("****JUST ********************* "+access_url);
String response = null;
try
{
response = CustomHttpClient.executeHttpPost(access_url, postParameters);
//response = CustomHttpClient.executeHttpGet(access_url);
res=response.toString();
String holidayArray[] = new String[res.length()];
JSONArray jsonArray = new JSONArray(res);
for (int i = 0, j=-1; i < jsonArray.length()/2; i++,j=j+2)
{
holidayArray[i] = jsonArray.getString(j+1)+", Date: "+jsonArray.getString(j+2);
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.holiday_list,holidayArray));
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
這是我的XML
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="20sp"
android:padding="15dp">
</TextView>
日誌:
12-24 09:46:58.470: E/AndroidRuntime(283): java.lang.NullPointerException
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.AbsListView.obtainView(AbsListView.java:1294)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.ListView.makeAndAddView(ListView.java:1727)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.ListView.fillDown(ListView.java:652)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.ListView.fillGap(ListView.java:623)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2944)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.AbsListView.onTouchEvent(AbsListView.java:2065)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.widget.ListView.onTouchEvent(ListView.java:3315)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.view.View.dispatchTouchEvent(View.java:3766)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:897)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
12-24 09:46:58.470: E/AndroidRuntime(283): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1671)
12-24 09:46:58.470: E/AndroidRuntime(283): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.app.Activity.dispatchTouchEvent(Activity.java:2086)
12-24 09:46:58.470: E/AndroidRuntime(283): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1655)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.view.ViewRoot.handleMessage(ViewRoot.java:1785)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.os.Handler.dispatchMessage(Handler.java:99)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.os.Looper.loop(Looper.java:123)
12-24 09:46:58.470: E/AndroidRuntime(283): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-24 09:46:58.470: E/AndroidRuntime(283): at java.lang.reflect.Method.invokeNative(Native Method)
12-24 09:46:58.470: E/AndroidRuntime(283): at java.lang.reflect.Method.invoke(Method.java:521)
12-24 09:46:58.470: E/AndroidRuntime(283): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-24 09:46:58.470: E/AndroidRuntime(283): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-24 09:46:58.470: E/AndroidRuntime(283): at dalvik.system.NativeStart.main(Native Method)
請讓我知道什麼地方出了錯。
感謝您的回覆@Sander範特德維爾。即使我認爲罪魁禍首是我的循環。因爲當我把一個硬編碼的字符串數組,它工作正常。您建議的for循環不起作用。即使是簡單的for循環也會給出相同的空指針異常。 – Vish 2011-12-24 11:09:47
感謝您的幫助。問題解決了。數組長度是一個問題。我將holidayArray []長度設置爲jsaonArray.length()/ 2。 – Vish 2011-12-24 11:18:25
你應該選擇這個作爲答案,@Vish。 – Mafro34 2013-11-28 16:41:21