解决方案 »

  1. 注意里面传入的值int i,这个是指你的item,你debug看下,,,
      

  2.             @Override
                public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                    ListItem listitem = (ListItem) adapterView.getItemAtPosition(i);
                    if (listitem != null) { 
                        //your code
                    }
                    return true; 
                }
      

  3. 我看了i是我选中的item,但是改变的一直就是如果我选中第一个改变的就是第一和第5个 我选第2个就变第2和第六个
      

  4.    ListView  l=null;
            l.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
                @Override
                public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
                    
                }
            });
      /**
         * Extra menu information provided to the
         * {@link android.view.View.OnCreateContextMenuListener#onCreateContextMenu(ContextMenu, View, ContextMenuInfo) }
         * callback when a context menu is brought up for this AdapterView.
         *
         */
        public static class AdapterContextMenuInfo implements ContextMenu.ContextMenuInfo {        public AdapterContextMenuInfo(View targetView, int position, long id) {
                this.targetView = targetView;
                this.position = position;
                this.id = id;
            }
    ....
      

  5. 问题在于 注册点击时候 未指定 行数, 点击监听执行时候 listView 会调用默认的位置(不确定) 所以基本上不会得到你想要的结果。
      


  6. 我的是长按事件 大神求详解我前面的回答是有错的,你的做法没有问题。(没有实例调试,抱歉)
    实际问题在于 你改变了某一项上的ImageView 的值, 
    然而ListView 是个item 不断重用的控件,你改了item 1 ,往下滚,item5出现,item1 消失,
     这时item5是重用item1的控件, 此时图片是你改过的
    你必须额外保存imageView的图片状态,并在getView中重新绑定。
      

类似问题 »