如何删除footerLayout
中的分隔线?我在footerLayout
下有一个listView
,用于显示totalAmount,如下所示。如果单击footerLayout
中的分隔线,则我的应用程序崩溃了。
我的主要活动
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错误
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)
错误指向
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);
}
footerLayout应该显示在listView外部,而不是内部。我该如何摆脱呢?
我也有
activity_main.xml
,AllAdapter
类,对于all_adapter.xml
使用ListView
,对于under_listview.xml
也使用footerLayout
。activity_main
AllAdapter
under_listview
如何将footerLayout从ListView中移出?
我添加
android:footerDividersEnabled="false"
现在变成这样但是仍然可以点击!
最佳答案
footerLayout应该显示在listView之外,而不是
内。
实际上,页脚也是ListView
的一部分,它累加了列表中的项数。没什么,有几种方法可以忽略页脚视图上的单击事件。
一种选择是代替使用以下方法添加视图:addFooterView(footerLayout);
,
采用:addFooterView(footerLayout, null, false);
第三个参数指定是否在页脚视图should be selectable。
另一种选择是当position
参数大于适配器数据集的大小时忽略单击:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> listView, View view, final int position, long id) {
if(position < adapter.getCount()){
Expenses expenses = (Expenses) adapter.getItem(position);
String day = expenses.getDate();
}
}
});