2011-02-25 39 views
1

嗨,我使用下面的鏈接 Custom ListView With Headers添加的ImageView爲列表視圖

我現在的問題是我想要的圖像設置爲listview.I頭開發一個應用程序的首部正在顯示的列表使用第二種添加的項目即ie;

adapter.addSection("Security", new SimpleAdapter(this, security, R.layout.list_complex, 
      new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption })); 

我使用的圖像視圖,而不是TextView的在list_headre.xml.at那個時候我得到了以下異常

02-28 05:43:12.273: ERROR/ArrayAdapter(1212): You must supply a resource ID for a TextView 
02-28 05:43:12.273: DEBUG/AndroidRuntime(1212): Shutting down VM 
02-28 05:43:12.273: WARN/dalvikvm(1212): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
02-28 05:43:12.283: ERROR/AndroidRuntime(1212): Uncaught handler: thread main exiting due to uncaught exception 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at chronicle.books.shopping.SeparatedListAdapter.getView(SeparatedListAdapter.java:97) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.AbsListView.obtainView(AbsListView.java:1274) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ListView.makeAndAddView(ListView.java:1668) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ListView.fillDown(ListView.java:637) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ListView.fillFromTop(ListView.java:694) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ListView.layoutChildren(ListView.java:1521) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.AbsListView.onLayout(AbsListView.java:1113) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.View.layout(View.java:6830) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.LinearLayout.onLayout(LinearLayout.java:918) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.View.layout(View.java:6830) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ScrollView.onLayout(ScrollView.java:1108) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.View.layout(View.java:6830) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.LinearLayout.onLayout(LinearLayout.java:918) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.View.layout(View.java:6830) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:900) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.View.layout(View.java:6830) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.View.layout(View.java:6830) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.View.layout(View.java:6830) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.ViewRoot.performTraversals(ViewRoot.java:996) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1633) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.os.Looper.loop(Looper.java:123) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at dalvik.system.NativeStart.main(Native Method) 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212): Caused by: java.lang.ClassCastException: android.widget.ImageView 
02-28 05:43:12.322: ERROR/AndroidRuntime(1212):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:340) 

現在,我想要顯示的圖像作爲標題,而不是TextView.For這個請給我一些代碼的建議。謝謝

回答

2

ArrayAdapter只支持TextView意見。 As per the docs要爲數組顯示使用除TextView之外的其他內容(例如ImageViews)或除了toString()結果之外還有一些數據填充視圖,請覆蓋getView(int,View,ViewGroup)以返回您的視圖類型想。

如果您只是想在標題中輸入一個ImageView,我會在下面使用我的原始答案。

原來的答覆:使用方法addHeaderViewListView,只是傳遞一個ImageView

+0

我正在接受headrefile.xml.I中的textview,並聲稱當時我用圖像獲得了關於adapter的強制關閉。請檢查一次url我要發送的內容 – Pinki

+0

我不清楚你在做什麼。如果用'ImageView'替換'TextView'導致異常,請發佈異常。另外一些代碼會很有幫助,因爲我不知道這個headrefile.xml文件是什麼。 –

+0

我已經被告知使用相同的代碼,即http://jsharkey.org/blog/2008/08/18/separating-lists-with-headers-in-android-09/ – Pinki