亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

android - Error: java.lang.IndexOutOfBoundsException: Invalid index 2

瀏覽:91日期:2024-02-27 13:25:31

問題描述

How to remove the seperator line in footerLayout? I have a footerLayout below the listView, used to display the totalAmount as shown below. If I click the seperator line in footerLayout, my app crashed.

android - Error: java.lang.IndexOutOfBoundsException: Invalid index 2

My MainActivity

AllAdapter obj = new AllAdapter(getApplication(), search, listview,imageView,text,button);footerLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.under_listview, null);totalAmount = (TextView) footerLayout.findViewById(R.id.amount);

LogCat error

java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251) at java.util.ArrayList.get(ArrayList.java:304) at com.example.tony.monthlyexpenses.adapter.AllAdapter.getItem(AllAdapter.java:61) at com.example.tony.monthlyexpenses.QuickExpenses$1.onItemClick(QuickExpenses.java:88) at android.widget.AdapterView.performItemClick(AdapterView.java:301)

The error pointed to listView onClickListener

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> listView, View view, final int position, long id) {mClickedPosition = position;Expenses o = (Expenses) obj.getItem(position);String day = o.getDate(); }});

AllAdapter

public Expenses getItem(int position) {return search.get(position); }

The footerLayout is supposed to be displayed outside the listView, not inside. How can I get rid of this ?

I also have activity_main.xml, AllAdapter class, all_adapter.xml for ListView and also under_listview.xml for the footerLayout.

activity_main

AllAdapter

under_listview

How to move the footerLayout out from the ListView ?

I add android:footerpidersEnabled='false' now become like this

android - Error: java.lang.IndexOutOfBoundsException: Invalid index 2

But still clickable !!!

誰知道問題出在哪?

android - Error: java.lang.IndexOutOfBoundsException: Invalid index 2

footerLayout被按時如何不出現灰色?

android - Error: java.lang.IndexOutOfBoundsException: Invalid index 2

問題解答

回答1:

很簡單,但也很容易出錯的問題,加了footer后,你的listview item數量是3,但adapter的viewcount其實并沒有變成3,所以在你點擊footer時執行的是obj.getItem(2),肯定是數組越界異常了。對于添加了header或footer的listview,正確的取item方法應該是

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> listView, View view, final int position, long id) {Expenses o = (Expenses) listView.getAdapter().getItem(position);if(o != null){ mClickedPosition = position; //Expenses o = (Expenses) obj.getItem(position); String day = o.getDate();} }});

header或footer屬于AdapterView的子view,listView.getAdapter().getItem(position);能確保你取2的position時不越界,再做對象空判斷。

回答2:

你不能使用setOnItemClickListener 來作為footview的點擊事件,我認為你應該單獨的去設置例如 footview.setonClickListener(new OnClickListener{}); 祝你好運

回答3:

你這個是數組下標越界了啊,你的數組size是2,所以對應的下標只能是0和1,但是你在使用的時候用了2,錯誤顯示你有個無效的index 2,你自己找下第61行和第88行,看是否有地方調用了index是2的

回答4:

將footerLayout移出listView的寫法是

listview.addFooterView(footerLayout, null, false);

標簽: java
相關文章:
主站蜘蛛池模板: xxx国产老太婆视频 xxx欧美老熟 | 免费观看成人久久网免费观看 | 在线观看成年视频 | 一级毛片一级毛片一级毛片 | 99免费视频观看 | 亚洲一区二区三区香蕉 | 99午夜高清在线视频在观看 | 精品在线视频免费观看 | 亚洲精品中文一区不卡 | 日本vs欧美一区二区三区 | 国内真实愉拍系列情侣自拍 | 欧美特级一级毛片 | 国产欧美综合在线一区二区三区 | 99精品视频在线视频免费观看 | 久久久久久久久久久久久久久久久 | 亚洲区精品久久一区二区三区 | 精品久久久久久久久久香蕉 | 成年人在线免费观看视频网站 | 成年男女免费视频网站播放 | 久草久| 最新欧美精品一区二区三区不卡 | 1204国产成人精品视频 | 欧美一级看片 | 国产精品久久久久久一级毛片 | 久久精品视频观看 | 亚洲国产成人久久综合一 | 114毛片免费观看网站 | 日韩国产毛片 | 99精品热女视频专线 | 五月天婷婷伊人 | 99国产精品高清一区二区二区 | 欧做爰xxxⅹ性欧美大 | 在线观看免费a∨网站 | 欧美久久久久久 | se94se欧美综合色 | 日韩经典中文字幕 | 一级做a爰片久久毛片欧美 一级做a爰片久久毛片人呢 | 三级伦理网站 | 欧美日韩国产一区三区 | 久久精品国产一区二区 | 一区二区成人国产精品 |