错误:java.lang.IndexOutOfBoundsException:索引2无效,大小为2
如何删除footerLayout中的分隔符行?我在listView下面有一个footerLayout,用于显示总额,如下所示。如果我单击footerLayout中的分隔符行,我的应用程序就会崩溃 我的主要活动 LogCat错误 错误指向listView onClickListener 页脚布局应该显示在listView外部,而不是内部。我怎样才能摆脱这个 我还有activity_main.xml、AllAdapter类、用于ListView的all_adapter.xml以及用于footerLayout的_ListView.xml下面的内容 如何将页脚布局从ListView移出 我添加了android:footerDividersEnabled=false,现在变成这样 但是仍然可以点击 如果您不熟悉自定义ListViewAdapters,请参阅快速教程 我会有这样一个对象费用:错误:java.lang.IndexOutOfBoundsException:索引2无效,大小为2,java,android,listview,Java,Android,Listview,如何删除footerLayout中的分隔符行?我在listView下面有一个footerLayout,用于显示总额,如下所示。如果我单击footerLayout中的分隔符行,我的应用程序就会崩溃 我的主要活动 LogCat错误 错误指向listView onClickListener 页脚布局应该显示在listView外部,而不是内部。我怎样才能摆脱这个 我还有activity_main.xml、AllAdapter类、用于ListView的all_adapter.xml以及用于footerLa
class Expense {
Date date = new Date();
Double spendMoney = 5.0;
Bitmap image;
...
/** Continue with POJO **/
}
class expenseListAdapter extends ArrayAdapter<Expense> {
expenseListAdapter() {
super(context, R.layout.expenses_list_item, expensesList);
}
@Override
public View getView(int pos, View view, ViewGroup parent) {
if (view == null) {
view = getActivity().getLayoutInflater().inflate(R.layout.list_item_series, parent, false);
}
ShowListItem current = expensesList.get(pos);
TextView expens = (TextView) view.findViewById(R.id.expenseText);
expens.setText(current.getSpendMoney());
... (all other needed values of your Expense object)
return view;
}
}
以及一个expenses\u list\u item.xml布局。如果你需要帮助,我可以稍后再加上
在我的主要活动中,我会有一个ArrayList expensesList
我的定制ArrayListAdapter看起来像这样:
class Expense {
Date date = new Date();
Double spendMoney = 5.0;
Bitmap image;
...
/** Continue with POJO **/
}
class expenseListAdapter extends ArrayAdapter<Expense> {
expenseListAdapter() {
super(context, R.layout.expenses_list_item, expensesList);
}
@Override
public View getView(int pos, View view, ViewGroup parent) {
if (view == null) {
view = getActivity().getLayoutInflater().inflate(R.layout.list_item_series, parent, false);
}
ShowListItem current = expensesList.get(pos);
TextView expens = (TextView) view.findViewById(R.id.expenseText);
expens.setText(current.getSpendMoney());
... (all other needed values of your Expense object)
return view;
}
}
最后,我可以设置
ArrayAdapter<Expense> adapter = new expenseListAdapter();
expenseListView.setAdapter(adapter);
就是这样。乍一看可能有点复杂,但这种方法非常强大。如果你需要帮助,不要害怕问
问候
如果您不熟悉自定义ListViewAdapters,Malik只是一个快速教程
我会有这样一个对象费用:
class Expense {
Date date = new Date();
Double spendMoney = 5.0;
Bitmap image;
...
/** Continue with POJO **/
}
class expenseListAdapter extends ArrayAdapter<Expense> {
expenseListAdapter() {
super(context, R.layout.expenses_list_item, expensesList);
}
@Override
public View getView(int pos, View view, ViewGroup parent) {
if (view == null) {
view = getActivity().getLayoutInflater().inflate(R.layout.list_item_series, parent, false);
}
ShowListItem current = expensesList.get(pos);
TextView expens = (TextView) view.findViewById(R.id.expenseText);
expens.setText(current.getSpendMoney());
... (all other needed values of your Expense object)
return view;
}
}
以及一个expenses\u list\u item.xml布局。如果你需要帮助,我可以稍后再加上
在我的主要活动中,我会有一个ArrayList expensesList
我的定制ArrayListAdapter看起来像这样:
class Expense {
Date date = new Date();
Double spendMoney = 5.0;
Bitmap image;
...
/** Continue with POJO **/
}
class expenseListAdapter extends ArrayAdapter<Expense> {
expenseListAdapter() {
super(context, R.layout.expenses_list_item, expensesList);
}
@Override
public View getView(int pos, View view, ViewGroup parent) {
if (view == null) {
view = getActivity().getLayoutInflater().inflate(R.layout.list_item_series, parent, false);
}
ShowListItem current = expensesList.get(pos);
TextView expens = (TextView) view.findViewById(R.id.expenseText);
expens.setText(current.getSpendMoney());
... (all other needed values of your Expense object)
return view;
}
}
最后,我可以设置
ArrayAdapter<Expense> adapter = new expenseListAdapter();
expenseListView.setAdapter(adapter);
就是这样。乍一看可能有点复杂,但这种方法非常强大。如果你需要帮助,不要害怕问
问候
Malik尝试在listview中设置以下行
android:footerDividersEnabled="false"
尝试在listview中设置以下行
android:footerDividersEnabled="false"
我更改了这个代码,现在它可以正常工作了
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();
}
}
});
我更改了这个代码,现在它可以正常工作了
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();
}
}
});
页脚布局应该显示在listView之外,而不是
里面
实际上,页脚也是ListView的一部分,它将列表中的项目数相加。然而,有几种方法可以忽略页脚视图上的单击事件
一种选择是,不使用以下方式添加视图:
addFooterViewfooterLayout;,
使用:
addFooterViewfooterLayout,null,false
第三个参数指定是否显示页脚视图
另一个选项是在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();
}
}
});
页脚布局应该显示在listView之外,而不是
里面
实际上,页脚也是ListView的一部分,它将列表中的项目数相加。然而,有几种方法可以忽略页脚视图上的单击事件
一种选择是,不使用以下方式添加视图:
addFooterViewfooterLayout;,
使用:
addFooterViewfooterLayout,null,false
第三个参数指定是否显示页脚视图
另一个选项是在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();
}
}
});
请分享xml@Swas_99编辑。我有3个xml,一个是activity_main,另一个是adapter,最后是页脚布局xml。让我知道是哪个xml。问题是,页脚在列表视图中,位置大于obj中的对象数?也许您应该在执行getItem之前添加一个复选框。@matt我如何才能将footerLayout从listview移出?可能重复的请共享xml@Swas_99编辑。我有3个xml,一个是activity_main,另一个是adapter,最后是页脚布局xml。让我知道是哪个xml。问题是,页脚在列表视图中,位置大于obj中的对象数?也许您应该在执行getItem之前添加一个复选框。@matt我怎样才能将页脚布局从listview中移出?可能是重复的谢谢,Malik,我有所有这些。我将更新我的postEdited。请核对一下谢谢,马利克,这些我都有。我将更新我的postEdited。请选中将其添加到XML中的ListView将其添加到XML中的ListView谢谢!addFooterViewfooterLayout,null,false;玩了这些把戏。谢谢!addFooterViewfooterLayout,null,false;他耍了些花招。