1. 程式人生 > >仿購物車CheckBox的全選反選ListView中的checkbox

仿購物車CheckBox的全選反選ListView中的checkbox

activity程式碼

public class MainActivity extends Activity {

    private CheckBox check_all;
    private ListView lView;
    private CheckAdapter checkAdapter;
    private Button reverse;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        check_all = (CheckBox) findViewById(R.id.check_all);
        lView = (ListView) findViewById(R.id.list_view);
        reverse = (Button) findViewById(R.id.reverse);

        List<String> list = new
ArrayList<String>(); for (int i = 0; i < 15; i++) { list.add("這是條目" + i); } checkAdapter = new CheckAdapter(getApplicationContext(), list); lView.setAdapter(checkAdapter); check_all.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) { boolean flag = check_all.isChecked(); for (int i = 0; i < checkAdapter.getSelect().size(); i++) { checkAdapter.getSelect().set(i, flag); } checkAdapter.notifyDataSetChanged(); } }); reverse.setOnClickListener(new
OnClickListener() { @Override public void onClick(View v) { if (!checkAdapter.getSelect().contains(true)) { // check_all.setChecked(false); Toast.makeText(getApplicationContext(), "請選擇0", Toast.LENGTH_SHORT).show(); } else { for (int i = 0; i < checkAdapter.getSelect().size(); i++) { if (checkAdapter.getSelect().get(i)) { checkAdapter.getSelect().set(i, false); } else { checkAdapter.getSelect().set(i, true); } } if (!checkAdapter.getSelect().contains(true)) { check_all.setChecked(false); } } checkAdapter.notifyDataSetChanged(); } }); } private class CheckAdapter extends BaseAdapter { private List<String> list; private Context context; private LinkedList<Boolean> linkedList = new LinkedList<Boolean>(); public CheckAdapter(Context context, List<String> list) { this.list = list; this.context = context; // 初始化 for (int i = 0; i < list.size(); i++) { getSelect().add(false); } } private List<Boolean> getSelect() { return linkedList; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(context, R.layout.item, null); } CheckBox ck = (CheckBox) convertView.findViewById(R.id.ck); TextView tView = (TextView) convertView.findViewById(R.id.tv); tView.setText(list.get(position)); ck.setChecked(linkedList.get(position)); // 不能用onCheckChangedListner()複用的時候 ck.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { linkedList.set(position, !linkedList.get(position)); if (linkedList.contains(false)) { check_all.setChecked(false); } else { check_all.setChecked(true); } // 重新整理 notifyDataSetChanged(); } }); return convertView; } }

mainactivity的XML佈局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:layout_above="@+id/reverse"
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

    <Button
        android:id="@+id/reverse"
        android:layout_above="@+id/check_all"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="反選" />

    <CheckBox
        android:id="@+id/check_all"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="全選" />

</RelativeLayout>

ListView的item佈局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <CheckBox
        android:id="@+id/ck"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp" />

</LinearLayout>

相關推薦

仿購物車CheckBoxListViewcheckbox

activity程式碼 public class MainActivity extends Activity { private CheckBox check_all; private ListView lView; private

js購物車、商品價格統計

購物車全選 購物車價格計算 模仿淘寶購物車的全選全不選,根據選中的商品計算價格,指定店鋪選擇。以下是我自己在做H5頁面的時候整理出來的,想我一個純php的來寫成這樣也不容易。不完善的地方歡迎各位小夥伴指出~html代碼:<body> <header class="m

jquery實現購物車功能

 利用jquery實現購物車中全選(反選)換圖功能,具體程式碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta cont

jquery實現checkbox//取消

全選 反選 取消所有 IP port domain action 1.1.1.1 90 1.bai.com 1.1.1.2

jQuery的CheckBox時,勾失效的問題

    利用removeAttr()和prop()方法,完全沒問題。  在做複選框的時候,全選、反選應該是比較常用的功能。我在做這個功能時,發現多次全選、反選之後,頁面展示的“勾選”效果失敗了,頁面上沒有展示出勾選效果。但是追蹤js,發現已經是選中狀態

vue.js簡單實現checkbox,,多

1.html <table> <tr> <th class=""> <div class=""> <input type="checkbox" id="checkAll" @click="cli

使用Recyclerview巢狀實現購物車

  在drawable建立selector改變CheckBox外形 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/

購物車兩個Adaper,可以刪除,,數量加減,通過RecycleView巢狀實現

1activity_main.xml主頁面佈局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro

購物車一個Adaper,可以刪除,,數量加減

1activity_main.xml頁面佈局 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schem

購物車功能:使用jQuery實現購物車,單,商品增刪,小計等功能

效果圖: html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模擬購物車功能-jq</title>

【jQuery】jQuery實現checkbox/邏輯

在開發過程中,會遇到需要進行一個checkbox對多個checkbox進行全選/反選的邏輯 假如有一個網頁,是這樣的 <input id='selectAll'/><l

購物車修改刪除 批量刪除查詢排序

<!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title></title>         <

Android_二級列表購物車之增刪改查,,加減器,價錢數量計算

第一步: 導依賴 Eventbus依賴: compile 'org.greenrobot:eventbus:3.1.1'gson依賴: compile 'com.google.code.gson:gson:2.8.2' OkHttp依賴: compile 'com.squa

VUE 實現checkbox/

1、頁面結構部分 <template> <div> <!--給全選按鈕繫結v-mode變數,值為true時就是選中狀態,繫結點選事件,執行全選和反選操作--> <input

JQ checkbox 獲取值

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title>         <script type="text/javas

JTableHeader新增, checkbox

{            publicvoid mouseClicked(MouseEvent e) ...{                if (e.getClickCount() >0) ...{                    int selectColumn = tableHeader.

checkbox解決的問題

實現需求: 1.all的checkbox可全部選中或全部取消 2.小的checkbox全部選中時,all的checkbox自動選中 3.全部選中後,取消小的checkbox,all的checkbox自動取消 <!doctype html> <html

checkbox 可以根據小項判斷大項是否勾

$(document).ready(function(){ $("#htxhsall").click( function () { if(this.checked){ $("[name=htxhs]:checkbox").attr("checked"

jQuery(5)--實現checkbox,功能

頁面如下: 原始碼: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>demo04.ht

RecyclerView巢狀CheckBox實現單操作每條Item新增分割線

activity_main.xml的佈局:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/