关于ListView addFooterView的问题

双鱼座1990 发布于 2016/06/01 18:19
阅读 592
收藏 0
在ListView底部addFooterView(view),对view中的TextView设置点击监听,当长按view时报角标越界,这是怎么回事啊
加载中
0
mgic
mgic

我假设一种情况。你可以自己揣摩一下。

listview的长按方法是这个:

onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
其中position参数代表子item view的索引,你通过postion去访问数据集list中的某个object,如果当前你长按的是除了footerview之外的item,那没问题,但如果你长按的是footerview,此时postion应该会和数据集list的size一致,从而导致角标越界。

你看看你有没有可能是这个问题。如果是这个问题,也好解决,你不要通过数据集list来访问object,而通过adapter的getitem方法来访问。

双鱼座1990
我没有设置长按监听,点击addFooterView中的TextView也不报错,只有当长按TextView时才会报角标越界,不理解这是为什么
0
mgic
mgic
你把代码发出来,让大家看看。注意提问方法
双鱼座1990
当我点击TextView的时候不会报角标越界,但是点击TextView以外的区域就会角标越界,我想应该是addFooterView中的view是ListView中的Item一项,请大神判断我说的是否对
0
双鱼座1990

引用来自“mgic”的评论

你把代码发出来,让大家看看。注意提问方法
View v = inflater.inflate(R.layout.dialog_content_view, null);
        v.findViewById(R.id.dialog_text).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (j < 100) {
                    Log.d("TAG", "j < 100");
                    j += size;
                    data();
                } else {
                    Log.d("TAG", "j>=100");
                }
            }
        });
        listView.addFooterView(v);
        listView.setAdapter(adapter);

当点击的时候会角标越界,请问大神是不是addFooterView中的view也是ListView中Item的一项啊
返回顶部
顶部