2016-07-02 56 views
0

以下代碼將無法正常工作,因爲在onChanged方法中,我們無法訪問此對象,因爲它們是不同的對象。Android - 如何更新基礎數據更改時適配器的實例變量?

我該如何解決這個問題?請幫幫我。謝謝。

this.registerDataSetObserver(new DataSetObserver() { 
     @Override 
     public void onChanged() { 
      super.onChanged(); 
      //this will not work 
      this.checkedStates = new ArrayList<CheckboxState>(this.getCount()); 
     } 
}); 

回答

0

如果代碼是一個適配器內,checkedStates是一類場,只需使用:

registerDataSetObserver(this); 

然後讓你的適配器實現DataSetObserver

@Override 
public void onChanged(){ 
     super.onChanged(); 
     checkedStates = new ArrayList<CheckboxState>(getCount()); 
} 
+0

@ user3087000做了回答幫助? – Lino