<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="#00000000" android:fadingEdge="none" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_alignParentBottom="true" > <CheckBox android:id="@+id/all_check_btn" android:layout_width="40.0dip" android:layout_height="40.0dip" android:layout_alignParentLeft="true" /> </RelativeLayout> </RelativeLayout>
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計(jì),肅南裕固族自治網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:肅南裕固族自治等地區(qū)。肅南裕固族自治做網(wǎng)站價格咨詢:028-86922220
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="3.0dip" android:layout_weight="1.0" android:descendantFocusability="blocksDescendants" android:orientation="horizontal" > <CheckBox android:id="@+id/isCheakBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" /> <!-- 日報(bào)圖片 --> <ImageView android:id="@+id/dailyPic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginTop="3.0dip" android:layout_toRightOf="@id/isCheakBox" android:contentDescription="dailyPic" /> <!-- 附件名稱 --> <TextView android:id="@+id/dailyName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@id/dailyPic" android:text="日報(bào)名稱" android:textColor="#000000" android:textSize="12.0sp" /> <ImageButton android:id="@+id/deleteAttachment" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="20dp" android:layout_marginTop="3.0dip" android:focusable="false" /> <!-- 附件名稱 --> </RelativeLayout>
public class ListViewCheckBoxActivity extends ListActivity { private static final String TAG = "ListViewCheckBoxActivity"; private List<Item> itemList; private DraftDailyAdapter adapter; private Map<Integer, Boolean> isCheckedMap; private CheckBox allCheckBox; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); allCheckBox = (CheckBox)findViewById(R.id.all_check_btn); itemList = new ArrayList<Item>(); isCheckedMap = new HashMap<Integer, Boolean>(); //初始化數(shù)據(jù) for(int i=0;i<8;i++){ Item item = new Item(); item.id=i; item.name = "第"+i+"篇日報(bào)"; itemList.add(item); isCheckedMap.put(i,false); } adapter = new DraftDailyAdapter(this,itemList); setListAdapter(adapter); allCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Set<Integer> set = isCheckedMap.keySet(); Iterator<Integer> iterator = set.iterator(); if(isChecked){ while(iterator.hasNext()){ Integer keyId = iterator.next(); isCheckedMap.put(keyId,true); } }else{ while(iterator.hasNext()){ Integer keyId = iterator.next(); isCheckedMap.put(keyId,false); } } adapter.notifyDataSetChanged(); } }); } class DraftDailyAdapter extends BaseAdapter { public List<Item> list; private Context context; LayoutInflater inflater; public DraftDailyAdapter(Context context, List<Item> list) { super(); this.list = list; this.context = context; inflater = LayoutInflater.from(this.context); } @Override public int getCount() { return list == null ? 0 : list.size(); } @Override public Object getItem(int location) { return list.get(location); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; Item item = list.get(position); //Item的位置 final int listPosition = position; //這個記錄item的id用于操作isCheckedMap來更新CheckBox的狀態(tài) final int id = item.id; if(convertView == null){ holder = new ViewHolder(); convertView = inflater.inflate(R.layout.item, null); holder.tvName = (TextView)convertView.findViewById(R.id.dailyName); holder.deleteButton = (ImageButton)convertView.findViewById(R.id.deleteAttachment); holder.cBox = (CheckBox)convertView.findViewById(R.id.isCheakBox); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } Log.d(TAG, "id="+id); holder.cBox.setChecked(isCheckedMap.get(id)); holder.tvName.setText(item.name); holder.deleteButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View paramView) { //Log.d(TAG, "deletePosition="+listPosition+""); //刪除list中的數(shù)據(jù) list.remove(listPosition); //刪除Map中對應(yīng)選中狀態(tài)數(shù)據(jù) isCheckedMap.remove(id); //通知列表數(shù)據(jù)修改 adapter.notifyDataSetChanged(); } }); holder.cBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ isCheckedMap.put(id,true); }else{ isCheckedMap.put(id,false); } } }); return convertView; } public final class ViewHolder { public TextView tvName; public ImageButton deleteButton; public CheckBox cBox; } } class Item { private Integer id; private String name; } }
新聞標(biāo)題:安卓ListView中CheckBox的使用(支持Item列表項(xiàng)的刪除,全選,全不選)
當(dāng)前地址:http://chinadenli.net/article38/giicpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、服務(wù)器托管、虛擬主機(jī)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)