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.
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
But still clickable !!!
谁知道问题出在哪?
footerLayout
被按时如何不出现灰色?
很简单,但也很容易出错的问题,加了
footer
后,你的listview item
数量是3
,但adapter
的viewcount
其实并没有变成3
,所以在你点击footer时执行的是obj.getItem(2)
,肯定是数组越界异常了。对于添加了header或footer的listview
,正确的取item方法应该是footer
后,你的listview item
数量是3
,但adapter
的viewcount
其实并没有变成3
,所以在你点击footer时执行的是obj.getItem(2)
,肯定是数组越界异常了。对于添加了header或footer的listview
,正确的取item方法应该是header或footer属于AdapterView的子view
,listView.getAdapter().getItem(position);
rrreeeheader或footer属于AdapterView的子view
,listView.getAdapter().getItem(position);
能确保你取2的position时不越界,再做对象空判断。🎜你不能使用setOnItemClickListener 来作为footview的点击事件,我认为你应该单独的去设置
例如 footview.setonClickListener(new OnClickListener{}); 祝你好运
你这个是数组下标越界了啊,你的数组size是2,所以对应的下标只能是0和1,但是你在使用的时候用了2,错误显示你有个无效的index 2,你自己找下第61行和第88行,看是否有地方调用了index是2的
将
footerLayout
移出listView
的写法是footerLayout
移出listView
的写法是listview.addFooterView(footerLayout, null, false);
listview.addFooterView(footerLayout, null, false);
🎜