2015-01-19 4 views
0

http://s107.photobucket.com/user/nguyenduydat274/media/onoff.png.html때/오프 이미지 끄기로에

enter image description here

아래의 스위치 버튼에서의 상태를 유지하는 방법 : 사용 안 함,리스트 뷰에 속으로

(온/오프) 상태를 유지 : 계속 물리게 (on/off)하고 lliseview를 활성화하십시오.

+0

어디에서 영화를 가져 오나요? 앱의 어느 위치 에나 로컬로 저장 했습니까? –

+0

예, 저는 API에서 영화를 가져 와서 로컬에 저장합니다. 감사. – NgDuyDat

+0

데이터베이스에 로컬로 저장 한 경우 버튼의 상태를 저장하는 다른 필드를 추가하기 만하면됩니다. 항목을 활성화 또는 비활성화하려면 어댑터의 isEnabled (int position) 메서드에서 false를 반환해야합니다. –

답변

0

나는 내가 이해 한 것으로부터 작은 코드를 추가 할 것이다. 아이디어는 '모든 저장된 동영상'버튼을 켜거나 끌 때 목록보기가 활성화 및 비활성화되고 특정 영화의 상태를 유지해야합니다. 이제

public class UserSettingsMoviesAdapter extends BaseAdapter { 

    // Stores if the list is enabled or disabled. You need to update this 
    // value when the 'All saved movies' button is turned on or off. 
    private Boolean isListEnabled; 

    // This list will store if the movie is checked. 
    private List <Boolean> mArrChecked; 

    @Override 
    public boolean isEnabled(int position) { 
     if (isListEnabled) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     ... 

     boolean isChecked = mArrChecked.get(position); 
     swOnOff.setChecked(isChecked); 

     swOnOff.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       mArrChecked.set(currentPos, isChecked); 
       notifyDataSetChanged(); 
      } 
     }); 

     ... 
    } 
}  

활성화, 또는 isListEnabled 변수의 값을 변경해야합니다 전체 목록을 비활성화합니다. false를 반환하면 isEnabled()은 각 항목에 대해 false를 반환하고 모든 항목은 목록보기에 의해 비활성화되지만 상태는 유지됩니다. isListEnabled 값을 업데이트 한 후 notifyDataSetChanged()으로 전화하십시오.