@Override protected void onCreate(Bundle savedInstanceState) {  // TODO Auto-generated method stub  super.onCreate(savedInstanceState);  setContentView(R.layout.group_list2);    initBottomBar();    listView = (ListView) findViewById(R.id.groupListView);    GroupService service = new GroupService(this);  groupList = service.getGroupList(null);  adapter = new GroupListAdapter(this, groupList);  listView.setAdapter(adapter);    listView.setOnItemClickListener(new OnItemClickListener() {   @Override   public void onItemClick(AdapterView<?> adapterView, View view, int position,     long arg3) {    // TODO Auto-generated method stub    Group group = groupList.get(position);    CheckBox ctb = (CheckBox) view.findViewById(R.id.checkBox);    ctb.toggle();    adapter.selectedMap.put(group.id, ctb.isChecked());    adapter.notifyDataSetChanged();    if(adapter.selectedMap.containsValue(true)){     add2ScanListBtn.setEnabled(true);    }else{     add2ScanListBtn.setEnabled(false);    }   }  });   }  private  void initBottomBar(){  bottomBarView = (LinearLayout) findViewById(R.id.bottomBar);  add2ScanListBtn = (Button) bottomBarView.findViewById(R.id.add2ScanListBtn);  add2ScanListBtn.setEnabled(false);  checkBtn = (Button) bottomBarView.findViewById(R.id.checkBtn);  closeCheckBtn = (Button) bottomBarView.findViewById(R.id.closeCheckBtn);    add2ScanListBtn.setOnClickListener(this);  checkBtn.setOnClickListener(this);  closeCheckBtn.setOnClickListener(this); }
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {menu.add(0, MENU_EDITOR, 0, "编辑");return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case MENU_EDITOR:setCheckBoxVisible(View.VISIBLE);adapter.notifyDataSetChanged();break;default:break;}return super.onOptionsItemSelected(item);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.add2ScanListBtn:GroupService service = new GroupService(this);service.add2ScanList(adapter.selectedMap);for (Group group : groupList) {adapter.selectedMap.put(group.id, false);}setCheckBoxVisible(View.GONE);adapter.notifyDataSetChanged();break;case R.id.checkBtn:CharSequence text = checkBtn.getText();if (getText(R.string.checkAll).equals(text)) {for (int i = 0; i < adapter.getCount(); i++) {Group group = groupList.get(i);adapter.selectedMap.put(group.id, true);}checkBtn.setText(getText(R.string.checkNeither));add2ScanListBtn.setEnabled(true);}else if(getText(R.string.checkNeither).equals(text)){for (int i = 0; i < adapter.getCount(); i++) {Group group = groupList.get(i);adapter.selectedMap.put(group.id, false);}checkBtn.setText(getText(R.string.checkAll));add2ScanListBtn.setEnabled(false);}adapter.notifyDataSetChanged();break;case R.id.closeCheckBtn:setCheckBoxVisible(View.GONE);adapter.notifyDataSetChanged();break;default:break;}}

 

//设置checkbox是否可见private void setCheckBoxVisible(int state){bottomBarView.setVisibility(state);for (int i = 0; i < adapter.getCount(); i++) {Group group = groupList.get(i);adapter.visibleMap.put(group.id, state);}} 


class GroupListAdapter extends BaseAdapter{private Context context;private List groupList;private Map selectedMap;//保存checkbox是否被选中的状态private Map visibleMap ;public GroupListAdapter(Context context, List groupList) {this.context = context;this.groupList = groupList;selectedMap = new HashMap();visibleMap = new HashMap();for (Group group : groupList) {selectedMap.put(group.id, false);visibleMap.put(group.id, View.GONE);}}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn groupList.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {final ViewHolder holder;if (convertView == null) {holder = new ViewHolder();convertView = LayoutInflater.from(context).inflate(R.layout.group_list2_item, null);holder.groupNameCTV = (TextView) convertView.findViewById(R.id.groupNameTV);holder.checkBox = (CheckBox) convertView.findViewById(R.id.checkBox);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}Group group = groupList.get(position);holder.groupNameCTV.setText(group.m_strGroupName);holder.checkBox.setVisibility(visibleMap.get(group.id));holder.checkBox.setChecked(selectedMap.get(group.id));return convertView;}private class ViewHolder{TextView groupNameCTV;CheckBox checkBox;}}


group_list2.xml

 

<?xml version="1.0" encoding="utf-8"?>              


group_list2_item.xml

 

<?xml version="1.0" encoding="utf-8"?>      


 

 

 


更多相关文章

  1. 保存BitMap,File到本地
  2. android图片圆角、图片去色处理示例
  3. android文件操作的实例
  4. 设置可见和隐藏
  5. android屏幕截图
  6. Android文件保存和读取
  7. Android(安卓)Shareperferences使用
  8. [Android]你不知道的Android进程化(3)--进程等级
  9. Android(安卓)实现图片保存到本地并调用本地地址显示图片

随机推荐

  1. Android使用控件ImageView加载图片的方法
  2. Android Studio Gradle自动打包文档
  3. Android中Service服务详解(一)
  4. Android 滑动效果进阶篇(六)—— 倒影效果
  5. Android自定义UI手势密码改进版源码下载
  6. Android应用开发揭秘(笔记) 第六章 Android
  7. Android集成第三方支付
  8. android 的handler 注意
  9. Could not find SDK_Root\tools\adb.ex
  10. Android(安卓)Studio关于VectorDrawable