在viewpager的gridview数据中一个item被删除后,gridview怎么更新呢,我用notifyDataSetChanged(),无反应。将getItemPosition中返回值改为POSITION_NONE,也没用。二楼贴上PagerAdapter的代码,谁给看看哪错了。

解决方案 »

  1.   


    class GuidePageAdapter extends PagerAdapter {  
          
             @Override  
             public int getCount() {  
                 return pageView.size();  
             }  
       
             @Override  
             public boolean isViewFromObject(View arg0, Object arg1) {  
                 return arg0 == arg1;  
             }  
       
             @Override  
             public int getItemPosition(Object object) {  
                 return POSITION_NONE;  
             }  
       
             @Override  
             public void destroyItem(View arg0, int arg1, Object arg2) {  
                 ((ViewPager) arg0).removeView(pageView.get(arg1));  
             }  
       
             @Override  
             public Object instantiateItem(View arg0, int arg1) {
                 ((ViewPager) arg0).addView(pageView.get(arg1));  
                 return pageView.get(arg1);  
             }  
       
             @Override  
             public void restoreState(Parcelable arg0, ClassLoader arg1) {  
             }  
       
             @Override  
             public Parcelable saveState() { 
                 return null;  
             }  
       
             @Override  
             public void startUpdate(View arg0) {  
             }  
       
             @Override  
             public void finishUpdate(View arg0) {  
             }  
         } 
      

  2.   

    我也遇到这样的问题,我最后用item.setVisible(View.GONE)来解决
      

  3.   

    LZ能不能把含gridview的viewpage代码全部贴出来
      

  4.   

    由于我是固定了一个viewpage有4个item,才用View.GONE
    要真正解决应该是从父控件里remove掉,他就会自动消失
      

  5.   

    应该
    @Override  
     public void destroyItem(View arg0, int arg1, Object arg2) {  
                 ((ViewPager) arg0).removeView(pageView.get(arg1));  
     }
    这样是可以的吧,可是,我却不知道什么时候他会调用这个方法。他也不自动调用。 
      

  6.   

    你在onClick的时候,就removeView
      

  7.   

    貌似,不可以,我还得判断用户到底删没删这个应用呢。我还是把activity重启一下算了。不知道这样对系统开销大不大?
      

  8.   

    重启activity太不科学了,谁来帮帮我啊........