2017-11-07 13 views
0

한 번의 클릭으로 내 활동의 모든 체크 박스를 선택하거나 선택 취소하려고합니다.활동에서 사용자 지정 목록보기의 모든 확인란을 선택 및 선택 취소하는 방법은 무엇입니까?

private ListView mListView; 
private Contacts_ListViewAdapter ContactViewAdapter; 
private ArrayList<Contacts_ListView> ContactView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    intent = getIntent(); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    mListView = (ListView) findViewById(R.id.Contacts_list); 
    Selected_check_box = (CheckBox) findViewById(R.id.Selected_check_box) ; 
    View parentLayout = findViewById(android.R.id.content); 
    Select_All.setOnClickListener(new View.OnClickListener() { 
     private int ContactViewSize; 

     @Override 
     public void onClick(View view) { 
      ListView lv = mListView ; 
      int size = ContactViewAdapter.getCount(); 
      boolean check = lv.isItemChecked(0); 
      for(int i = 0; i <= size; i++) 
       lv.setItemChecked(i, !check); 
    } 
    }); 

작동하지 않습니다 이 코드를 시도했다.

답변

0

을 설정하십시오.

사용자 지정 어댑터에서 전역 분산을 추가하고 업데이트하십시오.

boolean allcheck = false; //Default unchecked 

업데이트 에서 모든 체크 박스의 Bindview

public void bindView(View view, Context context, Cursor cursor) { 
CheckBox box = (CheckBox) view.findViewById(R.id.checkBox); 

     box.setChecked(allcheck); 

    } 
0

setItemChecked (position, value) - 이것은 선택 모드가 CHOICE_MODE_SINGLE 또는 CHOICE_MODE_MULTIPLE로 설정된 경우에만 유효합니다. 그것은 당신이 목록보기는 쇼와 재활용 재사용 및 동적 변화 효율성을 위해 그 전망에 대한 충분한 "목록보기"를 구축하기 때문에 사용자 정의 CursorAdapter의 정보를 업데이트해야

listView.setChoiceMode(int mode)