2012-10-30 32 views
-1

我与我的ListView的页眉和页脚部分附加声明我得到随机崩溃在我的列表视图android.widget.HeaderViewListAdapter.isEnabled

ListView = (ListView)findViewById(R.id.favoritesList); 
View header = View.inflate(this, R.layout.favourites_list_header, null); 
View footer = View.inflate(this, R.layout.favourites_list_footer, null); 
favouritesListView.addHeaderView(header, null, false); 
favouritesListView.addFooterView(footer, null, false); 
favouritesListView.setHeaderDividersEnabled(false); 
favouritesListView.setFooterDividersEnabled(false); 
favouritesListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

这是我getView方法

public View getView(final int position, View convertView, ViewGroup parent) { 

if (convertView == null) { 

convertView = mInflater.inflate(R.layout.favouritestext, null); 

holder=new ViewHolder(); 

// my code goes here... 

} 

} 

我的Logcat

10-30 15:06:39.501: ERROR/AndroidRuntime(337): FATAL EXCEPTION: main 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at java.util.ArrayList.get(ArrayList.java:311) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.widget.ListView.dispatchDraw(ListView.java:2991) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6846) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.widget.AbsListView.draw(AbsListView.java:2257) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6743) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6743) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6743) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6743) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6743) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6743) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.View.draw(View.java:6743) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewRoot.draw(ViewRoot.java:1407) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1163) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.os.Looper.loop(Looper.java:123) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at java.lang.reflect.Method.invokeNative(Native Method) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at java.lang.reflect.Method.invoke(Method.java:521) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    10-30 15:06:39.501: ERROR/AndroidRuntime(337):  at dalvik.system.NativeStart.main(Native Method) 
+2

请提供一些代码,以便用户可以帮助您。 –

+1

你能帮我一些代码和说明吗? – AndroidLearner

+0

IndexOutOfBoundsException:索引1无效,大小为1这是问题所在。我认为对于这样的问题就足够了。 –

回答

0

您的适配器用于创建单个行的数据正在脱离索引。

例如,如果您使用的是5个项目的数组,但在创建适配器视图时,您尝试访问数组的第6个项目。

希望这会帮助你指出问题,否则发布代码。

1

我已经添加标题使用此addHeaderView(视图,对象,Slectable); 这是崩溃的原因,而不是添加报头以addHeaderView(查看)

+0

。请注意,点击标题视图时会调用onListItemClick。 – Boni2k

+2

不完全正确。我有头添加代码相同,但仍然有相同的错误。 – Braj

0

步骤重现

1制作列表

2组适配器

3添加页脚或页眉

4使清单清空

5滚动和崩溃重现