国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:65日期: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被按時(shí)如何不出現(xiàn)灰色?

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

問題解答

回答1:

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

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時(shí)不越界,再做對(duì)象空判斷。

回答2:

你不能使用setOnItemClickListener 來作為footview的點(diǎn)擊事件,我認(rèn)為你應(yīng)該單獨(dú)的去設(shè)置例如 footview.setonClickListener(new OnClickListener{}); 祝你好運(yùn)

回答3:

你這個(gè)是數(shù)組下標(biāo)越界了啊,你的數(shù)組size是2,所以對(duì)應(yīng)的下標(biāo)只能是0和1,但是你在使用的時(shí)候用了2,錯(cuò)誤顯示你有個(gè)無效的index 2,你自己找下第61行和第88行,看是否有地方調(diào)用了index是2的

回答4:

將footerLayout移出listView的寫法是

listview.addFooterView(footerLayout, null, false);

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 日本免费视 | 国产区二区| 一区二区三区 日韩 | 精品久久一区 | 国产一区二区三区久久精品小说 | 国内精品久久久久久 | 一级片爱爱 | 她也啪在线视频精品网站 | 欧美成人免费观看久久 | 在线观看久草 | 久久怡红院国产精品 | 欧美午夜在线观看理论片 | 亚洲欧洲日产v特级毛片 | 91aaa免费免费国产在线观看 | 2020国产成人免费视频 | 中文字幕一二三区乱码老 | 伊人色在线观看 | 欧美一区二区精品系列在线观看 | 特级aaa片毛片免费观看 | 手机亚洲第1页 | 偷拍小视频99在线 | 国产在线观看一区二区三区 | 亚洲综合综合在线 | 最新国产精品亚洲二区 | 亚洲精品系列 | 久久成人免费 | 亚洲欧美在线精品一区二区 | 亚洲精品久久久中文字 | 国产成人刺激视频在线观看 | 在线观看中文字幕一区 | 欧美亚洲国产人成aaa | 精品九九视频 | 国产欧美一区二区 | 久久久久久久国产精品视频 | 一区二区三区免费高清视频 | 日韩国产欧美在线观看 | 毛片1级| 精品国产免费人成在线观看 | 一级在线毛片 | 欧美高清在线视频一区二区 | 国产欧美另类 |