Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะรับรายการตรวจสอบทั้งหมดใน listView ใน Android ได้อย่างไร


ตัวอย่างนี้สาธิตวิธีรับรายการที่เลือกทั้งหมดใน listView ใน Android

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

  <ปุ่ม android:id="@+id/viewCheckedItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text ="เลือกทั้งหมด" />   

ขั้นตอนที่ 3 − สร้างคลาส java (CustomAdapter.java) และโค้ดต่อไปนี้ -

<ก่อนหน้า>นำเข้า android.annotation.SuppressLint;นำเข้า android.content.Context;นำเข้า android.view.LayoutInflater;นำเข้า android.view.View;นำเข้า android.view.ViewGroup;นำเข้า android.widget.BaseAdapter;นำเข้า android.widget ช่องทำเครื่องหมาย; นำเข้า android.widget.TextView; นำเข้า android.widget.Toast; นำเข้า java.util.ArrayList; นำเข้า java.util.Objects; คลาส CustomAdapter ขยาย BaseAdapter { บริบทบริบทส่วนตัว; ArrayList ส่วนตัวแบบคงที่ <รุ่น> modelArrayList; CustomAdapter (บริบทบริบท ArrayList <รุ่น> modelArrayList) { this.context =บริบท; CustomAdapter.modelArrayList =modelArrayList; } @Override int สาธารณะ getViewTypeCount () { ส่งคืน getCount (); } @Override สาธารณะ int getItemViewType (ตำแหน่ง int) { ตำแหน่งกลับ; } @Override สาธารณะ int getCount () { ส่งคืน modelArrayList.size (); } @Override วัตถุสาธารณะ getItem (ตำแหน่ง int) { ส่งคืน modelArrayList.get (ตำแหน่ง); } @Override สาธารณะ long getItemId (ตำแหน่ง int) { กลับ 0; } @SuppressLint("InflateParams") @Override public View getView (ตำแหน่ง int, View convertView, ViewGroup parent) { ผู้ถือ ViewHolder สุดท้าย; ถ้า (convertView ==null) { ผู้ถือ =ใหม่ ViewHolder (); LayoutInflater inflater =(LayoutInflater)บริบท.getSystemService (Context.LAYOUT_INFLATER_SERVICE); ConvertView =Objects.requireNonNull(inflater).inflate(R.layout.listitem, null, จริง); holder.checkBox =convertView.findViewById(R.id.checkBox); holder.tvPlayer =convertView.findViewById(R.id.playerNameList); ConvertView.setTag(ผู้ถือ); } อื่น ๆ { ผู้ถือ =(ViewHolder) convertView.getTag (); } holder.checkBox.setText("ช่องทำเครื่องหมาย" + ตำแหน่ง); holder.tvPlayer.setText(modelArrayList.get(ตำแหน่ง).getPlayer()); holder.checkBox.setChecked(modelArrayList.get(ตำแหน่ง).getSelected()); holder.checkBox.setTag(R.integer.btnPlusView, convertView); holder.checkBox.setTag(ตำแหน่ง); holder.checkBox.setOnClickListener (View.OnClickListener ใหม่ () { @Override public void onClick (View v) { Integer pos =(Integer) holder.checkBox.getTag (); Toast.makeText (บริบท "ช่องทำเครื่องหมาย" + pos + "คลิกแล้ว !", Toast.LENGTH_SHORT).show(); if (modelArrayList.get(pos).getSelected()) { modelArrayList.get(pos).setSelected(false); } อื่น { modelArrayList.get(pos).setSelected( จริง); } } }); กลับ convertView; } ViewHolder คลาสส่วนตัว { ช่องทำเครื่องหมาย ช่องทำเครื่องหมาย; TextView tvPlayer ส่วนตัว; }}

ขั้นตอนที่ 4 − สร้างคลาส java (Model.java) และโค้ดต่อไปนี้ -

คลาสโมเดล { บูลีนส่วนตัว isSelected; ผู้เล่นสตริงส่วนตัว; สตริง getPlayer () { ผู้เล่นกลับ; } โมฆะ setPlayer (ผู้เล่นสตริง) { this.player =ผู้เล่น; } บูลีน getSelected () { return isSelected; } เป็นโมฆะ setSelected (เลือกบูลีน) { isSelected =เลือกแล้ว; }}

ขั้นตอนที่ 5 − เพิ่มรหัสต่อไปนี้ใน res/values/strings.xml

 ตัวอย่าง 1 2

ขั้นตอนที่ 6 − สร้างเลย์เอาต์สำหรับคุณ listView (listItem.xml) และเพิ่มรหัสต่อไปนี้ -

 <กล่องกาเครื่องหมาย android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/checkBox" /> 

ขั้นตอนที่ 7 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java

นำเข้า androidx.appcompat.app.AppCompatActivity;นำเข้า android.os.Bundle;นำเข้า android.view.View;นำเข้า android.widget.Button;นำเข้า android.widget.ListView;นำเข้า android.widget.Toast;นำเข้าจาวา util.ArrayList; MainActivity คลาสสาธารณะขยาย AppCompatActivity { ListView listView ส่วนตัว; ArrayList ส่วนตัว<รุ่น> modelArrayList; CustomAdapter ส่วนตัว customAdapter; ปุ่ม btnSelect, btnDeselect; สตริงคงที่สาธารณะ[] playerList =new String[]{"Sunil Chetri - INDIA", "Cristiano Ronaldo - Portugal", "Lionel Messi - Argentina", "Neymar Jr - Brazil", "Eden Hazard - Belgium", "Gigi Buffon" - อิตาลี", "เจมส์ โรดริเกส - โคลัมเบีย", "ซาดิโอ มาเน่ - เซเนกัล", "โทนี่ โครส - เยอรมนี"}; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); listView =findViewById (R.id.listView); btnSelect =findViewById(R.id.viewCheckedItem); btnDeselect =findViewById(R.id.deSelect); modelArrayList =getModel (เท็จ); customAdapter =CustomAdapter ใหม่ (MainActivity.this, modelArrayList); listView.setAdapter (กำหนดเองอะแดปเตอร์); btnSelect.setOnClickListener (View.OnClickListener ใหม่ () { @แทนที่โมฆะสาธารณะ onClick (ดู v) { modelArrayList =getModel (จริง); customAdapter =ใหม่ CustomAdapter (MainActivity.this, modelArrayList); listView.setAdapter (customAdapter); Toast.makeText (getApplicationContext(), "ตรวจสอบรายการทั้งหมดแล้ว", Toast.LENGTH_SHORT).show(); } }); btnDeselect.setOnClickListener (View.OnClickListener ใหม่ () { @แทนที่โมฆะสาธารณะ onClick (ดู v) { modelArrayList =getModel (เท็จ); customAdapter =ใหม่ CustomAdapter (MainActivity.this, modelArrayList); listView.setAdapter (customAdapter); Toast.makeText (getApplicationContext(), "ไม่ได้เลือกรายการทั้งหมด", Toast.LENGTH_SHORT).show(); } }); } ArrayList ส่วนตัว<รุ่น> getModel(บูลีน isSelect) { ArrayListlist =new ArrayList<>(); สำหรับ (int i =0; i <9; i++) { Model model =new Model(); model.setSelected(isSelect); model.setPlayer(รายชื่อผู้เล่น[i]); list.add(รุ่น); } กลับรายการ; } }

ขั้นตอนที่ 8 − เพิ่มรหัสต่อไปนี้ใน androidManifest.xml

     <หมวดหมู่ android:name=" android.intent.category.LAUNCHER" />   

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์ของคุณแล้วคลิก Run จะรับรายการตรวจสอบทั้งหมดใน listView ใน Android ได้อย่างไร ไอคอนจากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก แล้วตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ -

จะรับรายการตรวจสอบทั้งหมดใน listView ใน Android ได้อย่างไร