0

シナリオを実装したい-画面の上部にチェックボックスがあり、その上部のチェックボックスの下にチェックボックスがあるカスタムリストビューがあります。

誰かがそのチェックボックスをチェックして、リストビューのすべてのチェックボックスをチェックする必要があり、その逆も同様です。

public class GroupMemberListAdapter extends BaseAdapter {
        private LayoutInflater inflater = null;
        Context Mycontext;

        public GroupMemberListAdapter(Context context) {
            Mycontext = context;
            inflater = LayoutInflater.from(context);

        }

        public int getCount() {
            return broadcastList.size();

        }

        public Object getItem(int paramInt) {
            return paramInt;
        }

        public long getItemId(int paramInt) {
            return paramInt;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            EventViewHolder holder;

            if (convertView == null) {
                convertView = inflater.inflate(R.layout.contactcustomlayout,
                        null);
                holder = new EventViewHolder();

                holder.mtvGroupMemberName = (TextView) convertView
                .findViewById(R.id.tvGroupMemberName);

                holder.checkbox_group_member = (CheckBox)convertView.findViewById(R.id.checkBox_GroupMember);

                /*holder.mtvGroupMemberAbout = (TextView) convertView
                        .findViewById(R.id.tvGroupMemberAbout);*/

                convertView.setTag(holder);
            } else {
                holder = (EventViewHolder) convertView.getTag();
            }
            holder.mtvGroupMemberName.setText(""+broadcastList.get(position));
            //holder.mtvGroupMemberAbout.setText(""+data.get(position));
            return convertView;
        }

        public class EventViewHolder {
            private TextView mtvGroupMemberName;
            private TextView mtvGroupMemberAbout;
            private CheckBox checkbox_group_member;
        }
    } 


checkBox_selectAll.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub


                checkAllBoxes();

            }
        });


    private void checkAllBoxes(){

        int size =  mlvGroupBroadContact.getAdapter().getCount();
        System.out.println("Size of the list is:"+size);


    }

すべてのリストビューボックスをチェックするにはどうすればよいですか???

4

3 に答える 3

1

以下のコードを使用して、リストビューのすべてのチェックボックスをオンにすることができます

private void checkAllBoxes(){

    int size =  mlvGroupBroadContact.getAdapter().getCount();
    System.out.println("Size of the list is:"+size);
    CheckBox chk;
    for(int i=0;i<size;i++)
    {
      chk= ((CheckBox)jobList.getChildAt(i).findViewById(R.id.chk));
      chk.setChecked(true);
    }
}
于 2013-01-16T08:51:15.397 に答える
1

ListView選択モードがCHOICE_MODE_MULTIPLEまたはの場合CHOICE_MODE_SINGLE:

    private void deselectAll() {

        getListView().clearChoices(); 

       //--as of GingerBread, clearChoices() alone is not sufficient--
       //--we'd have to manually un-check visible items--

        for (int i = 0; i < getListView().getChildCount(); i++) {
            View c = getListView().getChildAt(i);
            if (c instanceof Checkable) {
                ((Checkable) c).setChecked(false);
            }
        }

    }

    private void selectAll() {

        SparseBooleanArray sba = getListView().getCheckedItemPositions();

        for (int i = 0; i < getAdapter().getCount(); i++) {
            sba.put(i, true);
        }

        for (int i = 0; i < getListView().getChildCount(); i++) {
            View c = getListView().getChildAt(i);
            if (c instanceof Checkable) {
                ((Checkable) c).setChecked(true);
            }
        }

    }

getListView()andgetAdapter()を自分のインスタンスListViewとそのインスタンスに置き換えAdapterます。

于 2013-01-16T08:50:57.443 に答える
0

checkBox_selectAll クリック リストナーからアダプター クラスのブール変数を更新します。view.getAdapter.notifyDataSetChanged(); を呼び出します。

この変数に基づいた getView で、チェック済みまたはチェック解除済みの状態を設定します。

于 2013-01-16T09:06:44.643 に答える